造数 - 这次教教大家专业的爬虫伪装技巧
有些网站会识别访问者是通过浏览器还是爬虫,如果被识别使用的不是浏览器,则会禁止用户在网站上的行为。这也就是放爬虫。
常见的反爬虫机制有:分析用户请求的headers信息
检测用户行为,如短时间内同一个IP频繁访问
动态加载增加爬虫难度
验证码反爬虫
信息需要登录才能显示
常见的大家可能都见过,那么不常见的呢?
有的网站某些信息是加密的,可能浏览器上看到的是这样,我们复制出来看到的又不一样,这种需要解密;
有的网站会检测用户鼠标移动情况,爬虫肯定是没有鼠标移动的,那么肯定被干掉;
还有就是代理IP,我们都知道网上存在大量代理IP,通过一些网站我们可以拿到免费IP,但是别人网站页可以拿到的,别人拿到这些IP后直接BAN掉,所以失效,需使用更高效的ADSL拨号代理。
还有更变态的是,遇到需要点击某元素才能进行下一步的网站。
下面说一说使用Python写爬虫时,如何反反爬虫。
1、关于headers
常见的为浏览器加入headers,需要设置Requests Headers里面的内容
其中的每一个参数都有自己的作用,面对不同的网站时方法也不一样。
常见的就是设置User-Agent ,这里推荐一个包 fake-useragent
2、关于代理
简单方法就是购买,免费的和收费的相比还是差了不少。
如果想获得免费的可用的代理如何办?
可以看到在 Google 上可以看到很多搜索结果,接下来怎么做你懂的。
3、关于Cookie
请求会返回多个Cookie,我们从其中找到最有效的Cookie,这回极大的提高效率
4、关于Selenium
Selenium可以完美解决反爬,因为它就是一个真实的浏览器在操作,网站没理由把它干掉。
但是也要看到Selenium的缺点,速度慢、效率低是最主要问题。自己写着玩玩可以,但是在真是的应用中,Selenium并不常见。
当然,你可以使用Selenium+Phantomjs,并对其进行优化,速度和别的爬虫还是没法比。
写在最后,爬虫一直是知乎上的热门话题,今天介绍一些爬虫伪装技巧,若有错误请指出。
若大家觉得自己写爬虫麻烦,也可以来试试我们的产品造数 - 最酷的智能云爬虫