如何应对网站反爬虫策略?如何高效地爬大量数据

 我来答
瑾瑜爸育儿
2016-12-08 · 知道合伙人软件行家
瑾瑜爸育儿
知道合伙人软件行家
采纳数:5813 获赞数:18788
毕业于四川成都大学汉语言文学专业,文学学士学位。 网络营销、网站运营行业10年SEO网站优化运营经验。

向TA提问 私信TA
展开全部

  如何应对网站反爬虫策略?如何高效地爬大量数据,解答如下

  • 一般有一下几种

  • 一些常用的方法

  • IP代理 

  • 对于IP代理,各个语言的Native Request API都提供的IP代理响应的API, 需要解决的主要就是IP源的问题了.

  • 网络上有廉价的代理IP(1元4000个左右), 我做过简单的测试, 100个IP中, 平均可用的在40-60左右, 访问延迟均在200以上.

  • 网络有高质量的代理IP出售, 前提是你有渠道.

  • 因为使用IP代理后, 延迟加大, 失败率提高, 所以可以将爬虫框架中将请求设计为异步, 将请求任务加入请求队列(RabbitMQ,Kafka,Redis), 调用成功后再进行回调处理, 失败则重新加入队列. 每次请求都从IP池中取IP, 如果请求失败则从IP池中删除该失效的IP.

  • Cookies 

  • 有一些网站是基于cookies做反爬虫, 这个基本上就是如 @朱添一 所说的, 维护一套Cookies池

  • 注意研究下目标网站的cookies过期事件, 可以模拟浏览器, 定时生成cookies

  • 限速访问 

  • 像开多线程,循环无休眠的的暴力爬取数据, 那真是分分钟被封IP的事, 限速访问实现起来也挺简单(用任务队列实现), 效率问题也不用担心, 一般结合IP代理已经可以很快地实现爬去目标内容.

  • 一些坑

  • 大批量爬取目标网站的内容后, 难免碰到红线触发对方的反爬虫机制. 所以适当的告警提示爬虫失效是很有必有的.

  • 一般被反爬虫后, 请求返回的HttpCode为403的失败页面, 有些网站还会返回输入验证码(如豆瓣), 所以检测到403调用失败, 就发送报警, 可以结合一些监控框架, 如Metrics等, 设置短时间内, 告警到达一定阀值后, 给你发邮件,短信等.

  • 当然, 单纯的检测403错误并不能解决所有情况. 有一些网站比较奇葩, 反爬虫后返回的页面仍然是200的(如去哪儿), 这时候往往爬虫任务会进入解析阶段, 解析失败是必然的. 应对这些办法, 也只能在解析失败的时候, 发送报警, 当告警短时间到达一定阀值, 再触发通知事件. 

  • 当然这个解决部分并不完美, 因为有时候, 因为网站结构改变, 而导致解析失败, 同样回触发告警. 而你并不能很简单地区分, 告警是由于哪个原因引起的.

万企明道
2024-08-07 广告
价格只是购买产品或服务过程中的一项指标,如果单纯只比较价格,其实考虑并不是那么周到。价格、质量、服务、口碑、是否合适自己的情况等都需要一起考虑。如果想了解更多详细信息,可以咨询下上海万企明道软件有限公司。上海万企明道软件有限公司是一家专注于... 点击进入详情页
本回答由万企明道提供
IPIDEA全球HTTP
2020-09-19 · 百度认证:江苏艾迪信息科技官方账号
IPIDEA全球HTTP
IPIDEA是国内领先的动态IP服务商,整合全球240+国家和地区真实住宅IP资源量9000万 我们提供7x24小时的全天候多语种咨询,真实住宅IP应用多种应用场景, 支持百万高并发
向TA提问
展开全部
从事互联网工作者都比较清楚,网络爬虫对于互联网的共享是非常大的,其中有超过一半的流量都是网络爬虫的贡献,如果一个网站不设置防爬机制,那么所有的信息都会透明公开化,所以几乎所有的网站都会设置防爬机制,今天介绍一部分常见的反网络爬虫以及应对反网络爬虫的突破方法,但是还是要提醒大家不要恶意进行爬取。

动态页面的限制,爬虫工作者可能会遇到这样的尴尬,当你抓取下目标页面之后,你发现,关键信息处一片空白,只有密密麻麻一片的框架代码,这是因为该网站的信息是通过用户Post的XHR动态返回内容信息,解决这种问题就是要通过开发者工具(FireBug等)对网站流进行分析,对内容信息进行抓取,获取所需要的内容。

用户行为检测,有一些是网站通过检测和分析一些用户的行为,比如说是针对cookies,通过检查cookies来判断用户是不是可以利用和保存的有效客户,通常是需要登陆的网站,经常会采用这样的技术。层次再深的还有,信息验证,部分网站的登陆是需要验证吗的验证的,就像登陆的时候,系统会自动分配出验证码,authenticity_token,authenticity_token会和用户提交的登录名和密码一起发送回服务器。

IP的访问频率被限制,一些平台为了防止多次访问网站,会在某个同一个IP在单元时间内超过一定的次数的时候,将禁止这个IP继续访问。对于这个限制IP访问效率,可以使用代理IP的方法来解决问题比如使用IPIDEA。

以上简单的说了三种常见的反爬虫已经反爬虫的应对方法,一般来讲越高级的爬虫被封锁的机率救会越低,但是性能会比较低一些。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式