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 continue语句用法实例
Mar 11 Python
python3.5仿微软计算器程序
Mar 30 Python
python实现稀疏矩阵示例代码
Jun 09 Python
python matplotlib绘图,修改坐标轴刻度为文字的实例
May 25 Python
pyqt5 QProgressBar清空进度条的实例
Jun 21 Python
python按修改时间顺序排列文件的实例代码
Jul 25 Python
手写一个python迭代器过程详解
Aug 27 Python
Python通过cv2读取多个USB摄像头
Aug 28 Python
利用Python代码实现一键抠背景功能
Dec 29 Python
python判断两个序列的成员是否一样的实例代码
Mar 01 Python
pandas中的ExcelWriter和ExcelFile的实现方法
Apr 24 Python
手把手教你怎么用Python实现zip文件密码的破解
May 27 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
PHP函数checkdnsrr用法详解(Windows平台用法)
2016/03/21 PHP
php实现计算百度地图坐标之间距离的方法
2016/05/05 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
PHP静态成员变量
2017/02/14 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
一些常用的Javascript函数
2006/12/22 Javascript
jquery $.getJSON()跨域请求
2011/12/21 Javascript
jquery简单瀑布流实现原理及ie8下测试代码
2013/01/23 Javascript
批量实现面向对象的实例代码
2013/07/01 Javascript
input:checkbox多选框实现单选效果跟radio一样
2014/06/16 Javascript
深入探讨前端框架react
2015/12/09 Javascript
javascript js 操作数组 增删改查的简单实现
2016/06/20 Javascript
详解js的事件代理(委托)
2016/12/22 Javascript
提高Node.js性能的应用技巧分享
2017/08/10 Javascript
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
浅谈vue中$bus的使用和涉及到的问题
2020/07/28 Javascript
Linux下使用python调用top命令获得CPU利用率
2015/03/10 Python
探索Python3.4中新引入的asyncio模块
2015/04/08 Python
python基础教程项目四之新闻聚合
2018/04/02 Python
Python 通过调用接口获取公交信息的实例
2018/12/17 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
2018/12/31 Python
Python利用itchat库向好友或者公众号发消息的实例
2019/02/21 Python
Python利用matplotlib绘制约数个数统计图示例
2019/11/26 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
2020/02/26 Python
SpringBoot实现登录注册常见问题解决方案
2020/03/04 Python
Python基于callable函数检测对象是否可被调用
2020/10/16 Python
Python爬虫分析微博热搜关键词的实现代码
2021/02/22 Python
英国评分最高的女性剃须刀订阅盒:FFS Beauty
2018/01/25 全球购物
泰国王权免税店官方网站:KingPower
2019/03/11 全球购物
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
2014/09/26 面试题
大学生自我评价怎样写好
2013/10/23 职场文书
财务主管的岗位职责
2013/12/30 职场文书
高中生家长会演讲稿
2014/01/14 职场文书
办公室主任岗位职责
2015/01/31 职场文书
2015年青年教师工作总结
2015/05/25 职场文书
2016年秋季新学期致辞
2015/07/30 职场文书