本系列文章由 @YhL_Leo 出品,转载请注明出处。
文章链接: http://blog.csdn.net/yhl_leo/article/details/50358695


如果我有一组网站,想要定时刷新访问,可以通过python3 的urllibtime模块,但是普通的使用 urllib.request.urlopen在有些网站是会受到网站异常访问屏蔽策略的限制,出现这样的提示: urllib.error.HTTPError: HTTP Error 403: Forbidden。要突破这样的限制,必须伪装成为真正的用户(真正用户大量搜索也会出现)访问,就能降低这样情况发生的概率。关键就在于构造headers报头消息的请求,而核心就在于设置user-agent使之看起来像是真正用户的请求消息(python 3.4的默认UA是Python-urllib/3.4,很容易看出不是真正的用户请求)。

给出一段示例代码:

import urllib.request, time, randomdef webBrowser(url, header, tm):req = urllib.request.Request(url, headers = header)try:webPage = urllib.request.urlopen(req)data = webPage.read()time.sleep(tm)#information of web pageprint(type(webPage))print(webPage.geturl())#print(webPage.info())#print(webPage.getcode())except urllib.error.URLError as err:print(err)except urllib.error.HTTPError as err:print(err)except http.client.HTTPException as err:print(err)def rand_url():#web listurl_list = ['http://blog.csdn.net/yhl_leo/article/details/50283927','http://blog.csdn.net/yhl_leo/article/details/50351172','http://blog.csdn.net/yhl_leo/article/details/50283303','http://blog.csdn.net/yhl_leo/article/details/50255623','http://blog.csdn.net/yhl_leo/article/details/50327113','http://blog.csdn.net/yhl_leo/article/details/50311869','http://blog.csdn.net/yhl_leo/article/details/50300447','http://blog.csdn.net/yhl_leo/article/details/50255069','http://blog.csdn.net/yhl_leo/article/details/50255623','http://blog.csdn.net/yhl_leo/article/details/50179779','http://blog.csdn.net/yhl_leo/article/details/50112477','http://blog.csdn.net/yhl_leo/article/details/50099843','http://blog.csdn.net/yhl_leo/article/details/50054953','http://blog.csdn.net/yhl_leo/article/details/49848391','http://blog.csdn.net/yhl_leo/article/details/49788741','http://blog.csdn.net/yhl_leo/article/details/49737357','http://blog.csdn.net/yhl_leo/article/details/49592361','http://blog.csdn.net/yhl_leo/article/details/49591995','http://blog.csdn.net/yhl_leo/article/details/49591019','http://blog.csdn.net/yhl_leo/article/details/49427383','http://blog.csdn.net/yhl_leo/article/details/48879093','http://blog.csdn.net/yhl_leo/article/details/48862187'];return url_list[random.randint(0, len(url_list)-1)] def rand_headers():#user_agent listuser_agent_list = ['Mozilla/5.0 (X11; U; Linux i686)Gecko/20071127 Firefox/2.0.0.11','Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11','Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko','Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36','Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36','Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; rv:11.0) like Gecko)','Mozilla/5.0 (Windows; U; Windows NT 5.2) Gecko/2008070208 Firefox/3.0.1','Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070309 Firefox/2.0.0.3','Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070803 Firefox/1.5.0.12','Opera/9.27 (Windows NT 5.2; U; zh-cn)','Mozilla/5.0 (Macintosh; PPC Mac OS X; U; en) Opera 8.0','Opera/8.0 (Macintosh; PPC Mac OS X; U; en)','Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080219 Firefox/2.0.0.12 Navigator/9.0.0.6','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0)','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)','Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E)','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Maxthon/4.0.6.2000 Chrome/26.0.1410.43 Safari/537.1','Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E; QQBrowser/7.3.9825.400)','Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.92 Safari/537.1 LBBROWSER','Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; BIDUBrowser 2.x)','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.11 TaoBrowser/3.0 Safari/536.11']header = {'user-agent':user_agent_list[random.randint(0, len(user_agent_list)-1)]}return headertm = 1;   #wait time(sec) for per web
idx = 0;  #loop count
tm_per_h = 10; #wait time(sec) for every 150 loops
while True:url = rand_url()header = rand_headers()webBrowser(url, header, tm)idx = idx+1if (idx+1)%150 == 0:time.sleep(tm_per_h)

这里在rand_url()rand_headers()函数通过随机的方法,分别从给出的博客链接url_listuser_agent_list里选出一对访问的链接和UA,同时在访问函数里加上时间间隔,整个程序就可以不停地访问网页列表中的网站~

当然这段代码测试的都是CSDN的博客链接,结果显示没有问题(说明CSDN的异常访问屏蔽策略的限制还是很宽松),所以如果想提高博客浏览量是很轻松的,那么你还能从浏览量里看出什么吗?

转载于:https://www.cnblogs.com/hehehaha/p/6332190.html

Python3 定时访问网页相关推荐

  1. python 模拟微信浏览器请求_2020-03-06 python selenium 模拟访问网页检查更新并微信通知...

    老同学说有个不错的网站,华尔街日报每天更新,但是百度网盘每24小时后就会删除,偶尔忘记去下载就再也找不到了. 简单介绍一下最后成果,在Mac下开发,Ubuntu服务器部署定时检查发送微信到指定用户.在 ...

  2. 【避坑 超详细】Ubuntu使用python的selenium以及chrome模拟真实浏览器访问网页

    在Ubuntu系统上使用python的selenium,另外加上chrome和chromedriver,用于模拟浏览器访问网页. 下面教程在阿里云的Ubuntu 14.04 64位测试成功,其他lin ...

  3. python3爬取网页数据学习笔记——XPath篇

    数据来源网站:2016中国企业500强排行榜(完整名单)→买购网 (maigoo.com) 参考资料:python3 爬取网页表格例子_快乐糖果屋的博客-CSDN博客 右键数据部分,选择检查 观察到需 ...

  4. LabVIEW跳转访问网页

    在设计LabVIEW应用程序时,点击按键,跳转访问网页的功能十分常见. 使用LabVIEW跳转网页的方式有很多种,本篇博文推荐一种比较简单的方法:执行系统命令. 执行系统命令实质上就是LabVIEW调 ...

  5. 请求中文乱码_【1】执行Http请求访问网页

    向导团队 - fourkings [1]执行Http请求访问网页 1. 目标网址 我们的目标网址是当当网,url地址是 http://book.dangdang.com/ 2. 获取HTML文档内容 ...

  6. html如何创建学生信息表,创建学生对象并且能访问网页

    讲解对象:创建学生对象并且能访问网页 作者:融水公子rsgz 1 templates下面新建两个网页 grades.html 内容: charset="UTF-8"> 班级信 ...

  7. 网络爬虫初步:从访问网页到数据解析

    前言: 网络爬虫这个东西看上去还是很神奇的.不过,如果你细想,或是有所研究就知道,其实爬虫并不那么高深.高深的是在我们的数据量很大的时候,就是当我们网络"图"的回环越来越多的时候, ...

  8. Python通过urllib访问网页

    通过urllib.request.urlopen()函数就可以访问网页了 >>> import urllib.request >>> response =urlli ...

  9. Nginx+Tomcat负载均衡访问网页出现报错HTTP Status 400 – 错误的请求

    小故障 今天在搭建Nginx反向代理两个Tomcat站点负载均衡访问网页出现了400的网页报错. HTTP Status 400 – 错误的请求 故障原因 问题出在了nginx主配置文件中给后端tom ...

最新文章

  1. 网页加速系列(五)、 网页加速之进阶上篇
  2. saltstack的基础入门文档
  3. ContentPlaceHolder必须放在具有 runat=server 的窗体标记内
  4. 十进制转十六进制c语言_蓝桥杯十六进制转十进制,十进制转十六进制精简版(C++)...
  5. .net core百万设备连接服务和硬件需求测试
  6. 使用dwebsocket在Django中使用Websocket
  7. python delphi_python4delphi 使用
  8. 如何卸载自己手机上的APK文件程序
  9. bzoj 1432: [ZJOI2009]Function
  10. linux内核的诞生时间,Linux内核诞生已经17年
  11. 匿名管道 与 命名管道
  12. IDEA Jrebel 激活方法
  13. 海内外弟子追思百岁国医大师邓铁涛
  14. 二元回归方程matlab,matlab 多元非线性回归方程问题
  15. 《Python编程:从入门到实践》第12章:武装飞船
  16. Lemp + Wordpress 快速搭建个人博客
  17. 台式电脑CPU散热器怎么选?
  18. 乐鑫MCU,使用原生USB烧录代码教程#USB_OTG
  19. app屡次停止运行怎么解决_振动筛运行时物料跑偏,不走料、不下料怎么办?找准原因快速解决...
  20. 男士穿衣七大禁忌,千万要避免

热门文章

  1. 修改oralce字符集
  2. C#中处理XML文档的方法
  3. card样式 layui_layui样式修改
  4. python打破循环_python – 为什么“c.execute(…)”打破循环?
  5. iOS 11开发教程(一)
  6. mysql 导出gbk_把mysql 中的字符gb2312 改为gbk的方法
  7. python appium 并行多设备_学会使用python启动多个appium server,然后获取多台设备的driver...
  8. vba 当前文件名_值得收藏的VBA编程常用代码3640
  9. python中self_一个例子带你入门Python装饰器
  10. python post请求 上传图片_利用python模拟实现POST请求提交图片的方法