爬虫,又称为网络爬虫,是一种可以自动爬取目标网站信息的程序或脚本。
如今,在很多行业都能看到爬虫的身影,例如爬取目标网站的资讯、排行榜等信息。但是,很多网站是不愿意让自己的信息白白被获取的,所以就有了反爬虫措施的出现。至此,爬虫与反爬虫常常上演精彩的攻防大战,但是,刚入门的小白在爬虫时往往会被一些简单的反爬措施给困住,所以在这里,作为一位前码农,我就来给大家讲讲有哪些常见的绕过反爬的解决方法。
1、针对访问频率限制
方法:使用python的sleep来生成随机时间。大概意思其实就是用sleep来实现爬虫每一段间隔时间都是随机的,这种方法可能会让爬虫花费时间增加,不过可以使用多个代理IP或者动态IP来解决。
2、针对UA限制
方法:可以设置个随机列表,在列表中放进大量的UA(User-Agent,一般指用户代理),可以有效地防止UA被限制,但UA数量可能要准备多一些。
3、针对动态渲染限制
方法:动态渲染是由JavaScript产生请求,这里可以尝试使用burpsuite来拦截请求,然后分析其规律并封装请求。
4、针对IP限制
方法:当反爬程序检测到同IP用户访问频率过高时,会直接将其IP锁定并限制。所以只需要准备好大量的替代IP就好了,不过更建议用动态IP,效率也会更好一些。
5、针对cookie限制
方法:使用selenium+webdriver,获取每次访问所需要的cookie,下次访问时便带上,也可以使用urllib2的cookie机制。
6、针对frame限制
方法:这种反爬措施一般是在网页里嵌入好几层frame,链接到其他的无效页面,然后再插入好几层frame,让你无法提取到有效url。这时候可以查看网页页面地源代码,一层层的找到有效页面所在目录,然后直接对这个有效页面进行请求。
说到这里,想必你对爬虫常见的绕过反爬的方法有了大致的了解了,其实爬虫中最容易出现的情况就是IP被限制,尤其是海外业务需要用到海外的代理IP的,我目前在用的一家叫Smartproxy的国内的海外IP代理商,各方面包括加个也还不错,纯净度、可用率高。最后,就是希望这篇文章多多少少能给你带来一些帮助,如果你觉得这一块内容还有想要了解的可以来评论区问我!