解决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的使用方法请移步:

  • 「fake-useragent 的用法」

你可能感兴趣的:(解决python爬取网站被反爬)