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之开始真正编程
Sep 12 Python
Python多进程编程技术实例分析
Sep 16 Python
python使用nntp读取新闻组内容的方法
May 08 Python
各种Python库安装包下载地址与安装过程详细介绍(Windows版)
Nov 02 Python
python 实现批量xls文件转csv文件的方法
Oct 23 Python
python利用百度AI实现文字识别功能
Nov 27 Python
python basemap 画出经纬度并标定的实例
Jul 09 Python
python快速编写单行注释多行注释的方法
Jul 31 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
Oct 11 Python
Python使用psutil获取进程信息的例子
Dec 17 Python
python实现简单区块链结构
Apr 25 Python
Python+DeOldify实现老照片上色功能
Jun 21 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
JQuery团队打造的javascript单元测试工具QUnit介绍
2010/02/26 Javascript
Lazy Load 延迟加载图片的jQuery插件中文使用文档
2012/10/18 Javascript
javascript编码的几个方法详细介绍
2013/01/06 Javascript
js实现网页标题栏闪烁提示效果实例分析
2014/11/20 Javascript
跟我学习javascript的循环
2015/11/18 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
JS代码实现table数据分页效果
2016/05/26 Javascript
几种二级联动案例(jQuery\Array\Ajax php)
2016/08/13 Javascript
JS实现最简单的冒泡排序算法
2017/02/15 Javascript
JS中实现函数return多个返回值的实例
2017/02/21 Javascript
vue2.0父子组件间通信的实现方法
2017/04/19 Javascript
详解Node.js 命令行程序开发教程
2017/06/07 Javascript
JS拖拽排序插件Sortable.js用法实例分析
2019/02/20 Javascript
[52:22]EG vs VG Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
跟老齐学Python之编写类之三子类
2014/10/11 Python
django+js+ajax实现刷新页面的方法
2017/05/22 Python
python游戏开发之视频转彩色字符动画
2019/04/26 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
2019/07/01 Python
Tensorflow模型实现预测或识别单张图片
2019/07/19 Python
Python  Django 母版和继承解析
2019/08/09 Python
Python操作Sonqube API获取检测结果并打印过程解析
2019/11/27 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
2020/01/08 Python
python 如何利用argparse解析命令行参数
2020/09/11 Python
利用Python实现字幕挂载(把字幕文件与视频合并)思路详解
2020/10/21 Python
CSS3截取字符串实例代码【推荐】
2018/06/07 HTML / CSS
英国户外服装、鞋类和设备的领先零售商:Millets
2020/10/12 全球购物
vue实现倒计时功能
2021/03/24 Vue.js
高中毕业自我鉴定
2013/12/19 职场文书
转预备党员政审材料
2014/02/06 职场文书
保护动物倡议书
2014/04/15 职场文书
学生会个人总结范文
2015/02/15 职场文书
2016年万圣节家长开放日活动总结
2016/04/05 职场文书
Python爬虫基础之简单说一下scrapy的框架结构
2021/06/26 Python
SQL实现LeetCode(196.删除重复邮箱)
2021/08/07 MySQL
Mysql关于数据库是否应该使用外键约束详解说明
2021/10/24 MySQL
volatile保证可见性及重排序方法
2022/08/05 Java/Android