python爬虫增加访问量的方法


Posted in Python onAugust 22, 2019

看着自己少得可怜的访问量,突然有一个想用爬虫刷访问量的想法,主要也是抱着尝试的心态,学习学习。

其实市面上有一些软件可以代刷流量 比如 流量精灵,使用感确实比我们自己写的代码要好一些

第一版:网上借鉴了一下           以下代码运行在 python3

import urllib.request
import time
# 使用build_opener()是为了让python程序模仿浏览器进行访问
opener = urllib.request.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
# 专刷某个页面
print('开始刷了哦:')
tempUrl = 'https://blog.csdn.net/Lin_QC/article/details/88966839'
for j in range(2000):
  try:
    opener.open(tempUrl)
    time.sleep(7)
    print('%d %s' % (j, tempUrl))
  except urllib.error.HTTPError:
    print('urllib.error.HTTPError')
    time.sleep(1)
  except urllib.error.URLError:
    print('urllib.error.URLError')
    time.sleep(1)

该代码主要就是利用爬虫打开网页来进行访问量的刷新,但是,该方法遇到了瓶颈,当刷新到一定访问量时,csdn的服务器会阻止该ip的访问,也就刷新不了访问量了。

所以,也就衍生了第二版。

我们可以在  https://www.xicidaili.com 网站上看到很多代理ip,使用这些代理ip,可以防止csdn服务器阻止访问。

首先,编写了一个获取代理ip的文件,经我本人实验,国内http代理ip较为稳定,所以我们爬取

'https://www.xicidaili.com/wt/1 

页面的代理ip信息,并将它们存储在proxy文件里,以下代码是基于 python2的,注意不要弄错版本

proxy_IP.py文件

import urllib2
import BeautifulSoup
User_Agent = 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0'
header = {}
header['User-Agent'] = User_Agent
url = 'https://www.xicidaili.com/wt/1'
req = urllib2.Request(url, headers=header)
res = urllib2.urlopen(req).read()
soup = BeautifulSoup.BeautifulSoup(res)
ips = soup.findAll('tr')
f = open("proxy", "w")
for x in range(1,len(ips)):
  ip = ips[x]
  tds = ip.findAll("td")
  ip_temp = tds[1].contents[0]+","+tds[2].contents[0]+"\n"
  print tds[1].contents[0]+"\t"+tds[2].contents[0]
  f.write(ip_temp)

通过执行以上代码,我们就可以获得大量代理ip,接下来就是使用这些ip进行对博客的访问。

csdnfake.py

import urllib2
import socket
import time
import random
socket.setdefaulttimeout(3)
user_agent_list = [
  'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
           'Chrome/45.0.2454.85 Safari/537.36 115Browser/6.0.3',
  'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50',
  'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50',
  'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)',
  'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)',
  'Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1',
  'Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11',
  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11',
  'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0)',
  'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0',
  'Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1',
]
f = open("proxy")
lines = f.readlines()
proxys = []
 
for i in range(0,len(lines)):
  ip = lines[i].strip().split(",")
  proxy_host = "http://"+ip[0]+":"+ip[1]
  print "http://"+ip[0]+":"+ip[1]
  proxy_temp = {"http": proxy_host}
  proxys.append(proxy_temp)
urls = {"https://blog.csdn.net/Lin_QC/article/details/88966839",
    "https://blog.csdn.net/Lin_QC/article/details/88930018",
    "https://blog.csdn.net/Lin_QC/article/details/88642949",
    "https://blog.csdn.net/Lin_QC/article/details/84568170",
    "https://blog.csdn.net/Lin_QC/article/details/84451279",
    "https://blog.csdn.net/Lin_QC/article/details/84927503",
    }
 
j=1
for i in range(100):
  for proxy in proxys:
    for url in urls:
      try:
        user_agent = random.choice(user_agent_list)
        proxy_support = urllib2.ProxyHandler(proxy)
        opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler)
        urllib2.install_opener(opener)
        req = urllib2.Request(url)
        c = urllib2.urlopen(req)
        print ("sucessful",j)
        j+=1
        time.sleep(5) 
      except Exception, e:
        print proxy
        print e
        continue

user_agent_list是一堆浏览器的代理头,可以模仿浏览器访问博客。

每次访问休息五秒,主要是因为过快的访问对csdn无效。

总结

以上所述是小编给大家介绍的python爬虫增加访问量的方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Python 相关文章推荐
python开发之基于thread线程搜索本地文件的方法
Nov 11 Python
Linux系统上Nginx+Python的web.py与Django框架环境
Dec 25 Python
聊聊Python中的pypy
Jan 12 Python
Windows下anaconda安装第三方包的方法小结(tensorflow、gensim为例)
Apr 05 Python
Python BS4库的安装与使用详解
Aug 08 Python
Django 路由控制的实现代码
Nov 08 Python
Python Django框架单元测试之文件上传测试示例
May 17 Python
python 实现多维数组转向量
Nov 30 Python
Python加密模块的hashlib,hmac模块使用解析
Jan 02 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
Mar 06 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
Jan 27 Python
TensorFlow低版本代码自动升级为1.0版本
Feb 20 Python
Python中字典与恒等运算符的用法分析
Aug 22 #Python
python实现通过flask和前端进行数据收发
Aug 22 #Python
python2.7的flask框架之引用js&css等静态文件的实现方法
Aug 22 #Python
PyQt+socket实现远程操作服务器的方法示例
Aug 22 #Python
使用python os模块复制文件到指定文件夹的方法
Aug 22 #Python
详解Django-channels 实现WebSocket实例
Aug 22 #Python
解决python3 requests headers参数不能有中文的问题
Aug 21 #Python
You might like
如何在WIN2K下安装PHP4.04
2006/10/09 PHP
php字符串截取问题
2006/11/28 PHP
php解压文件代码实现php在线解压
2014/02/13 PHP
PHP CURL 内存泄露问题解决方法
2015/02/12 PHP
php支持中文字符串分割的函数
2015/05/28 PHP
PHP大神的十大优良习惯
2016/09/14 PHP
PHPCMS V9 添加二级导航的思路详解
2016/10/20 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
2016/11/17 PHP
Jquery iframe内部出滚动条
2010/02/11 Javascript
比Jquery的document.ready更快的方法
2010/04/28 Javascript
对new functionName()定义一个函数的理解
2014/05/22 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
2014/10/17 Javascript
Knockout自定义绑定创建方法
2015/12/26 Javascript
拥Bootstrap入怀——导航栏篇
2016/05/30 Javascript
下一代Bootstrap的5个特点 超酷炫!
2016/06/17 Javascript
AngularJS指令与指令之间的交互功能示例
2016/12/14 Javascript
bootstrap按钮插件(Button)使用方法解析
2017/01/13 Javascript
label+input实现按钮开关切换效果的实例
2017/08/16 Javascript
详解vue 图片上传功能
2019/04/30 Javascript
jQuery 选择方法及$(this)用法实例分析
2020/05/19 jQuery
微信小程序上传帖子的实例代码(含有文字图片的微信验证)
2020/07/11 Javascript
python使用内存zipfile对象在内存中打包文件示例
2014/04/30 Python
Python中的ceil()方法使用教程
2015/05/14 Python
Pandas之drop_duplicates:去除重复项方法
2018/04/18 Python
Python读取txt某几列绘图的方法
2018/10/14 Python
Python实现的文轩网爬虫完整示例
2019/05/16 Python
使用python动态生成波形曲线的实现
2019/12/04 Python
Django ModelForm操作及验证方式
2020/03/30 Python
浅谈keras中自定义二分类任务评价指标metrics的方法以及代码
2020/06/11 Python
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
2016/12/30 HTML / CSS
HTML5利用约束验证API来检查表单的输入数据的代码实例
2016/12/20 HTML / CSS
Agoda香港:全球特价酒店预订
2017/05/07 全球购物
新颖的化妆品活动方案
2014/08/21 职场文书
白鹤梁导游词
2015/02/06 职场文书
导游词之山东八仙过海景区
2019/11/11 职场文书
解决xampp安装后Apache无法启动
2022/03/21 Servers