解决python爬取网站被反爬

问题场景

一次性爬取豆瓣的电影TOP250时,被服务器判定为IP异常,需要登录才能正常使用

原理

爬虫会干扰到正常的服务器访问,所以一般的网站都会有反爬虫机制,主要的原理是:

  • 监听TCP连接;
  • 分析请求中的User-Agent和refer信息;
  • 访问时间间隔短,访问量大
解决方式

python爬取豆瓣电影,被反爬后的解决方式:

  • user_agent
    user_agent是浏览器类型的详细信息,也是浏览器提交请求的重要请求头部字段;
    可以提供不同的user_agent,来绕过浏览器的反爬机制;
  • 使用代理和IP轮换
    反爬机制最常用的方式之一是检测IP,因此可以更换不同的IP地址来爬取内容;
  • 设置访问时间和间隔
    有些网站的会设置访问时间间隔,短时间访问次数超过了默认次数,就会被禁用,因此可以降低访问频率,设置长一点的访问时间;

自己解决的时候是加headers,尽可能字段多和详尽,可以暂时解决IP被禁用,但是爬取太多页面还是会被禁用,所以为了直接解决这个问题,选择fake_useragent来随机更换请求头里的User-Agent字段,达到绕过反爬机制的效果

fake_useragent的使用方法请移步:

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容