更多课程 选择中心

Python培训
美国上市教育机构

400-111-8989

Python培训

Python 爬虫:添加延时与用户代理

  • 发布:wangs0622
  • 来源:PythonAndMachineLearning
  • 时间:2017-12-04 13:19

延时下载功能

有时候爬取网站的速度过快,会导致服务器负荷过重,或者直接封掉你的 IP 。为爬虫添加延时下载功能,可以让你的程序在爬虫同一个域名网站的时候,每次爬取之间等待一段时间。

为此我们定义一个延时类:


分析如下:

在 __init__ 的构造函数中, self.delay 代表的是需要延时的时间,单位是 秒。 self.domains 从存储的是:以访问过的域名为键,最新一次访问时间为值的字典。

wait 函数集为等待函数,其输入时当前要下载的网页地址 url 。从此地址中得到域名,查询这个域名上次访问的时间。 如果没有访问过此域名,则不睡眠。 如果访问过此域名,则计算需要睡眠多久,然后执行睡眠操作。最后,将此域名和当前访问时间存储在字典中。

添加用户代理

其中,headers 用于设置用户代理信息。 proxy 用于设置 IP 代理信息。

将延时功能整合到 download 下载中。


其中 throttle 参数是一个 Throttle 类的一个实例。

对于 python 爬虫还可以添加其他的功能,例如缓存功能,可以使用文件缓存或者数据库缓存。个人感觉数据库缓存可能相对方便一些。有兴趣的话可以查看参考书籍,这里就不详细的介绍了。对于一般的情况,上述的下载网页源代码的函数已经够用了。

本文内容转载自网络,本着分享与传播的原则,版权归原作者所有,如有侵权请联系我们进行删除!

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:Python编程开发时的几个小技巧
下一篇:Python网络爬虫实战项目大全!

Python编程练习题二

Python编程练习题一

Python实现降雪效果

Python中dir()、help()的使用

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省