Python爬虫防封ip的一些技巧

作者:小雨 时间:2022-07-02 20:03:44 

在编写爬虫爬取数据的时候,因为很多网站都有反爬虫措施,所以很容易被封IP,就不能继续爬了。在爬取大数据量的数据时更是瑟瑟发抖,时刻担心着下一秒IP可能就被封了。

本文就如何解决这个问题总结出一些应对措施,这些措施可以单独使用,也可以同时使用,效果更好。

伪造User-Agent

在请求头中把User-Agent设置成浏览器中的User-Agent,来伪造浏览器访问。比如:

headers ={'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'} resp = requests.get(url,headers = headers)

还可以先收集多种浏览器的User-Agent,每次发起请求时随机从中选一个使用,可以进一步提高安全性:

Python爬虫防封ip的一些技巧

把上面随机选择一个User-Agent的代码封装成一个函数:

Python爬虫防封ip的一些技巧

在每次重复爬取之间设置一个随机时间间隔

比如:


time.sleep(random.randint(0,3)) # 暂停0~3秒的整数秒,时间区间:[0,3]

或:


time.sleep(random.random()) # 暂停0~1秒,时间区间:[0,1)

伪造cookies

若从浏览器中可以正常访问一个页面,则可以将浏览器中的cookies复制过来使用,比如:

Python爬虫防封ip的一些技巧

注:用浏览器cookies发起请求后,如果请求频率过于频繁仍会被封IP,这时可以在浏览器上进行相应的手工验证(比如点击验证图片等),然后就可以继续正常使用该cookies发起请求。

使用代理

可以换着用多个 * 来进行访问,防止同一个IP发起过多请求而被封IP,比如:

附:GitHub上的一个"反反爬虫"项目

道高一尺魔高一丈,你有反爬虫措施,那我也有各种"反反爬虫"的措施,GitHub上就有一位大神专门整理了一个这样的项目:Anti-Anti-Spider,链接地址为:github.com/luyishisi/An可以研究一下。

来源:https://cloud.tencent.com/developer/article/1581239

标签:Python,爬虫,防封,ip
0
投稿

猜你喜欢

  • 检测远程文件是否存在

    2009-06-22 13:00:00
  • 自动更新程序的设计框架

    2009-08-12 13:00:00
  • 交互设计实用指南系列(1) – “有效性”之“操作入口明确”

    2009-12-11 18:42:00
  • oracle中添加删除主键的方法

    2023-06-30 00:28:52
  • Python程序暂停的正常处理方法

    2023-07-17 23:21:47
  • 在SQL Server数据库开发中的十大问题

    2008-12-18 14:39:00
  • Python字典常见操作实例小结【定义、添加、删除、遍历】

    2021-02-18 20:42:41
  • asp如何创建一个Exchange用户?

    2009-11-14 20:52:00
  • css学习笔记:为什么在IE6下图片会往下掉一行

    2009-06-19 12:50:00
  • PHP开启opcache提升代码性能

    2023-06-17 04:39:55
  • 网页制作 JSP与ASP 的比较

    2005-08-10 16:00:00
  • MSSQL优化之探索MSSQL执行计划(转)

    2011-11-03 17:16:21
  • Sql Server 2005数据库被标记为“可疑”问题

    2009-12-15 10:50:00
  • 关于Ajax responseText 中文乱码问题

    2008-02-12 16:30:00
  • js游戏 俄罗斯方块 源代码

    2008-01-24 13:14:00
  • 通用分页存储过程

    2007-11-28 13:08:00
  • 实例:ASP与ACCESS链接

    2008-11-21 16:10:00
  • VBScript中LBound函数和UBound函数的用法

    2008-06-27 13:02:00
  • 针对google Chrome的 CSS hacks

    2009-11-30 12:45:00
  • Symfony2框架创建项目与模板设置实例详解

    2023-11-20 23:36:39
  • asp之家 网络编程 m.aspxhome.com