1. 使用了代理服务器,就能隐藏IP 了吗
不是隐藏IP,对方看到的是代理的IP,
而不是你真实的IP而已。
2. 如何应对网站反爬虫策略如何高效地爬大量数据
一般有一下几种
一些常用的方法
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的(如去哪儿), 这时候往往爬虫任务会进入解析阶段, 解析失败是必然的. 应对这些办法, 也只能在解析失败的时候, 发送报警, 当告警短时间到达一定阀值, 再触发通知事件.
当然这个解决部分并不完美, 因为有时候, 因为网站结构改变, 而导致解析失败, 同样回触发告警. 而你并不能很简单地区分, 告警是由于哪个原因引起的.
3. 为什么用了代理还是上不去被封IP的网站
解决异常的方法可以尝试一下换IP
电脑换IP很简单,使用双鱼IP转换器
手机换IP可以将手机设置为飞行模式10分钟后再重新打开就是不同的IP了
4. 有的网站为什么不能用代理IP
现在越来越多的人使用代理IP。都说代理IP好用,是大家的好帮手。但是要想用好代理IP,还是需要对代理IP了解透彻。可能有一些相对专业的知识,但你可能不太清楚。那么使用代理IP有哪些注意事项呢?以下IPIDEA全球代理IP介绍了新手使用代理IP的一些注意事项:
1.登陆问题。
有的优质代理IP需要授权,不授权就变成百万人骑。常用的授权方式有两种,一种是绑定机IP模式(俗称加白名单)。注意:这里是使用代理的绑定机器IP,不是提取代理的机器IP;一种是用户名+密码模式,使用代理时需要用户名+密码授权。
常见问题:机器IP绑定,但授权模式选择“用户名+密码”。很多人遇到这个问题,授权咨询至少有一半是这个问题。
2.频繁访问IP。
一个IP越并发,使用越频繁,目标网站封IP的可能性越大。我们知道,目标网站都有防爬机制,主要是为了缓解服务器的压力。如果在短时间内发送了太多请求,并且达到了设置的阈值,则IP访问将受到限制。
判断方法:如果浏览器设置代理IP访问目标网站成功,软件或程序中代理IP对目标网站的请求失败,很可能是被拦截的IP过大。
3.IP的数量
看代理IPs的数量,有些项目需要更多的IPs,代理IPS的数量与质量有关。比如全国各地都有自营服务器的话,可以提供更多高质量的代理IP,这个时候做一些工作会比较方便。
使用代理IP有哪些注意事项?以上介绍了四个注意事项,但其实不止以上几点,新手可以做以参考。
5. 被反爬虫会显示什么
网速会有影响,部分页面会显示无法预览。
从用户请求的 Headers 反爬虫是最常见的反爬虫策略。很多网站都会对 Headers 的 User-Agent 进行检测,还有一部分网站会对 Referer 进行检测(一些资源网站的防盗链就是检测 Referer)。
如果 遇到了这类反爬虫机制,可以直接在爬虫中添加 Headers,将浏览器的 User-Agent 复制到爬虫的 Headers 中;或者将 Referer 值修改为目标网站域名。对于检测 Headers 的反爬虫,在爬虫中修改或 者添加 Headers 就能很好的绕过。
基于用户行为反爬虫
有一部分网站是通过检测用户行为,例如同一 IP 短时间内多次访问同一页面,或者同一账户短时 间内多次进行相同操作。
大多数网站都是前一种情况,对于这种情况,使用 IP 代理就可以解决。可以专门写一个爬虫,爬取 网上公开的代理 ip,检测后全部保存起来。这样的代理 ip 爬虫经常会用到,最好自己准备一个。有了 大量代理 ip 后可以每请求几次更换一个 ip,这在 requests 或者 urllib2 中很容易做到,这样就能很容 易的绕过第一种反爬虫。
对于第二种情况,可以在每次请求后随机间隔几秒再进行下一次请求。有些有逻辑漏洞的网站,可 以通过请求几次,退出登录,重新登录,继续请求来绕过同一账号短时间内不能多次进行相同请求的限 制。
6. 网络爬虫为什么要使用爬虫代理
爬虫代理是爬虫过程中不可或缺的要素。当你爬取的数据达到一定量后,你会发现程序会时不时给你报错,而且频率越来越来高。这说你的爬虫被人家识别出来了,对方的反扒系统已经记住了你。通常会告诉你连接超时、连接中断更有甚者会直接中断你程序。
User-Agent是一个特殊字符串头,被广泛用来标示浏览器客户端的信息,使得服务器能识别客户机使用的操作系统和版本,CPU类型,浏览器及版本,浏览器的渲染引擎,浏览器语言等。
不同的浏览器会用不同的用户代理字符串作为自身的标志,当搜索引擎在通过网络爬虫访问网页时,也会通过用户代理字符串来进行自身的标示,这也是为何网站统计报告能够统计浏览器信息,爬虫信息等。网站需要获取用户客户端的信息,了解网站内容在客户端的展现形式,一些网站通过判断UA来给不同的操作系统,不同的浏览器发送不同的页面,不过这也可能造成某些页面无法再某个浏览器中正常显示.
我们可以获取随机User-Agent与使用,用上了随机User-Agent和代理IP大部分网站就没有什么问题了,但还是会出现一些反扒措施比较厉害的网站,还需要使用代理IP来破除IP限制的。
7. 爬虫怎么解决ip不足的问题
1.爬虫降低访问速度
由于上文所说的访问速度过快会引起IP被封,那么最直观的办法便是降低访问速度,如此就能防止了我们的IP被封的问题。但呢,降低速度,爬虫的效率就降低,关键还是要降低到什么程度?
首先要测试出网站设置的限制速度阈值,根据限速设置合理的访问速度。
建议不要设固定的访问速度,能够设置在一个范围之内,防止过于规律而被系统检测到,从而导致IP被封。
降低了访问速度,难以避免的影响到了爬取的抓取效率,不能高效地抓取,如此的抓取速度与人工抓取有何区别呢?都没有了使用爬虫抓取的优势了。
2.爬虫切换IP访问
既然单个爬虫被控制了速度,但我们可以使用多个爬虫同时去抓取啊!
我们可以使用多线程,多进程,这里要配合使用代理,不同的线程使用不同的IP地址,就像是同时有不同的用户在访问,如此就能极大地提高爬虫的爬取效率了。
对于能够提示效率的代理IP,爬虫要选择优质的使用,质量差的也是会影响效果的,可以考虑使用HTTP代理,像IP数量和质量都相当的不错,大家去测试使用下就知道了。
以上介绍了关于爬虫IP被封的问题分析,从原因到解决办法,不建议粗暴使用爬虫,合理的使用,效果更加好。并且降低爬虫的速度,能够减轻爬虫带给网站的压力,这对双方都是有好处的。
8. 如何应对网站反爬虫策略如何高效地爬大量数据
少做这种鸡鸣狗盗的事