关于问题爬虫怎么解决封 IP 的问题?一共有 4 位热心网友为你解答:
【1】、来自网友【老 Do 不卷】的最佳回答:
本人曾经在国内知名独角兽企业的爬虫团队从事研发工作,在其它公司从事业务开发时也时常处理反爬虫的工作,分享下我知道的解决爬虫 IP 封锁的思路。
1)网上有不少提供免费代理 IP 的网站,可以通过定时爬取这些网站的数据,自己维护一个代理 IP 池。至于代理 IP 池,可以自己写一个,也可以到 github 上找现成的。核心原理主要是如何判定一个 IP 是否有效和如何使用,比如尽量使用高匿 IP,多少次访问不成功判定 IP 无效并踢出代理池,控制爬取频率,使用 IP 过程中如果出现问题也要在代理池中做好标记等等。
2)某宝等平台上直接购买 IP 代理,这个其实就是相当于商家帮你把网上的 IP 资源先过滤了一遍。你也别幻想商家有什么独家资源,可能就是在网上找到,否则人家赚什么钱呢。这种方式可用性会高一些,但也不能保证,遇到大量失效的情况可能就得换一批 IP 了。当然可能有做的更好的商家,比如根据 IP 资源的质量做更精细的分类,包装成产品的,一分钱一分货吧,当然前提是找到靠谱的商家。
3)从运营商采购账号,每次拨号会变换 IP 的那种。本人之前的公司主要使用的这种方式,公司会采购数百个账号,自建 IP 代理池。根据需要定期重新拨号,或者每次爬取时会重新拨号获取新的 IP。这种方式 IP 质量是最高的,但成本也是最高的。
上面几种方式,可以综合考虑金钱和开发成本等维度,结合自身情况做选择或者综合运用吧。
都说「爬虫做得好,Lao 饭吃得早」,我曾经做爬虫的前同事基本都已经转行了。希望还在从事这一行的小伙伴,且行且珍惜。
【2】、来自网友【路人甲】的最佳回答:
总的来讲,网站的反爬虫的策略有:检测爬取频率、并发连接数目、HTTP 请求 header 包括 referer 和 UserAgent、网站日志和访问日志比对、判定 User Agent,IP 访问次数,通过这些数据来检测这个动态是爬虫还是用户个人行为。
其中最常见的就是判断你的请求频率和并发数量,如果你在短时间内发送了大量的请求,也就是你的爬取速度很快的话,那么他就直接判断你是爬虫,这时候先把你 IP 封了再说,免得给自己的网站带来负担。
那么这些策略我们都如何应对呢?这几个方法都不同,
1、爬虫伪装浏览器点击
我们先理解一下网站的代码执行,首先我们向服务器发送请求,这时服务器的后台 php、java 都会执行,然后网站代码被发送到本地,在本地时 js、ajax 会在浏览器内核中执行。所以这时候我们就知道,爬虫不仅要欺骗 php java 代码、还要欺骗 js 和 ajax 代码。
那么不同的代码就有不同的执行顺序,关于这一部分,这个教程给了很好的解释
(http://blog.csdn.net/wang1144/article/details/39378909)
2、使用代理
爬的太快会被封,是一定的。爬的太慢又非常耗时间。所以很多人都会说可以使用代理,所谓代理就是介于用户与网站之间的第三者:用户先将请求发到代理,然后代理再发到服务器,这样看起来就像是代理在访问那个网站了,实现一个不断的切换 IP 的假象。网上免费代理很多,但是能用的没几个,如果不想购买付费的代理,大家可以学习一下
3、降低访问频率
如果一直找不到好用的免费代理,又不想付费,最好的办法就是降低访问频率了。这样做可以达到与用代理一样的效果——防止被对方从访问量上看出来。比如:每抓取一个页面就休息随机几秒、限制每天抓取的页面数量。当然,在抓取效率上会差很多,因为数据量大的话,时间就会很长。
【3】、来自网友【惠惠软件】的最佳回答:
因为现在很多网站。当你的爬虫代码超频爬取网站的时候,就会触发防止 cc 封禁等操作,你就无法爬到数据了。
比如像宝塔,他就有各种防火墙。还有防止 cc 攻击或者说 CPU 自动封禁,所以说通过爬虫来获取网站的数据以后会越来越难做,建议不要做了,稍不谨慎还会涉及到违法。这个的话在后台是很容易控制的,安徽的防火墙就可以防止爬虫。
【4】、来自网友【阿兹绯言沫藺】的最佳回答:
爬虫的 ip 被封是因为现在的技术手段越来越普及了,要想解决爬虫不被封,难就需要过硬的技术。无非两种方式:一种社会工程学;社会工程学一般用在服务商上面机会更大。第二种方式:专业术语黑盒测试;你没有过硬的技术,是无法获得 root 的。
当然你钱多的话,动态 ip 多整点。你要是每天爬来爬去,我怕你钱不够砸的。况且 ip 也是有限的。你莫把它搞急眼了,一段一段的来封或者 SOS 你就玩完了。
以上就是关于问题【爬虫怎么解决封 IP 的问题?】的全部回答,希望能对大家有所帮助,内容收集于网络仅供参考,如要实行请慎重,任何后果与本站无关!