网页flash抓取器 70( 一下BANIP:网页的运维人员通过分析日志(组图) )

优采云 发布时间: 2021-11-02 16:26

  网页flash抓取器 70(

一下BANIP:网页的运维人员通过分析日志(组图)

)

  反爬虫策略及破解方法

  爬虫和反爬虫的对抗一直在进行……为了帮助更好的爬虫行为和反爬虫,今天介绍一下web开发者常用的反爬虫方法。

  1. BAN IP:网页运维人员通过分析日志发现某个IP最近访问量很大。如果网站在一定时间内被无数次访问过,运维人员就会判断这种访问行为是不正常的。,所以这个人的IP直接在服务器上被屏蔽了。

  解决方法:这种方法极易误伤其他正常用户,因为某个区域内的其他用户可能有相同的IP,导致很多正常用户访问服务器的次数较少,所以普通运维人员不会通过这种方式限制爬虫方法 。但是,面对大量的访问,服务器偶尔会把IP放入黑名单,一段时间后释放,但是我们可以通过分布式爬虫和购买代理IP很好的解决,但是爬虫的成本有增加。

  2. BAN USERAGENT:很多爬虫请求头都是默认的,一些非常明显的爬虫头python-requests/2.18.4等,当运维人员发现他们携带这些头的数据包直接拒绝访问并返回 403 错误

  解决方法:直接 r=requests.get(url,headers={'User-Agent':'Baiduspider'}) 将爬虫请求头伪装成百度爬虫或其他浏览器头。

  案例:雪球网

  

  返回的是 403403 Forbidden。

  您的 IP 地址:xxx.xxx.xxx.xxx。但是当我们写:

  

  返回的是2003. BAN COOKIES:服务器为每一个访问网页的人设置cookie,并给他们一个cookie。当cookie访问超过一定阈值时,cookie会被禁止,一段时间后释放,当然一般爬虫是不带cookie访问的,但是网页上的一些内容,比如新浪微博,需要用户登录以查看更多内容。

  解决办法:控制访问速度,或者一些需要登录的,比如新浪微博,在某宝上购买多个账号,生成多个cookies,每次访问都带cookies

  案例:马蜂窝

  以前因为旅行的需要,想到了捡一些游记,看看哪里找乐子,于是就去马蜂窝网站找游记。一张一张的读起来真的很慢。文章抓起来,统计每个词出现的最高频率,算出一些最热门的旅游景点,写了一个scrapy爬虫来抓游记。修改headers后,开始爬取,如果发现访问速度过快就会断开服务器。打开我的连接,然后需要一段时间(几个小时)才能继续爬行。所以放慢脚步,发现你不再是 BAN 了。

  4. 验证码验证:当用户访问次数过多时,请求会自动跳转到验证码页面。只有输入正确的验证码才能继续访问网站

  解决方案:Python可以通过一些第三方库如(pytesser,PIL)对验证码进行处理,以识别正确的验证码。爬虫通过机器学习可以自动识别复杂的验证码,程序可以自动识别。验证码并自动输入验证码继续爬行

  案例:保安客人当访客访问保安客人过快时,会自动弹出验证码界面。如下:

  5. javascript 渲染:web 开发者将重要信息放在网页上但不写成 html 标签,浏览器会自动渲染

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线