当前位置:   article > 正文

python+undetected_chromedriver+chrome绕过五秒盾(cloudflare)_flaresolverr selenium教程

flaresolverr selenium教程

公司是做外贸的,所以需要爬取一些外国网站的商品竞品数据,但是在爬取某个网站的时候,遇到了五秒盾的阻拦。

说实话,一开始自己并不了解五秒盾,毕竟在之前爬国内网站的时候,并没有遇到过这种防护措施,但是在爬取这个外国邮件网站的时候,返回的文本中,总是有如下的信息:

 

 一直让 “Just a moment...”,一开始自己以为是加载缓慢,但是每次都有,这就不得不引起警觉。

vscode中显示了一下html代码,并在浏览器上看了一下界面,发现是这样的

 这个.   "DDoS protection by Cloudflare" 是个啥子鬼?

但是看到DDoS protection by这种字样,感觉应该是防止DDoS攻击的,但是这个“Cloudflare”又是个啥?

在网上查询了一下,原来是所谓“五秒盾”的东东,而且网上有针对这小盾盾现成的python模块,也就是cloudscraper模块,使用requests和scrapy都可以.

网上针对requests使用cloudscraper的比较多,但是本人使用scrapy,所以参考AroayCloudScraper(https://githubmemory.com/repo/hwpchn/AroayCloudScraper)模块重新修改了一下,进行爬取的时候,毫不费力的就饶过了对方设置五秒盾的网站,简直不要太过完美!

事情原本到这步已经告一段落,毕竟其他的事情就是用scrapy的xpath获取数据就可以了,但是........

两周后,当领导要求再次爬取得这个网站的时候,我发现,原来的代码竟然不管用了!

原因是代码返回了这个错误:

 what? 要钱了?!

本着能白嫖绝不付费的原则,我找了一下该模块的git,但是上面显示并没有付费内容,而且提示了貌似一年才更新一次.....

但是这个模块还能否继续使用呢?我决定在google先查为妙,查询结果中,有一个是在scrapy中设置:         'COOKIES_ENABLED': True, 即可使用,但是我试了一下,并没有神马卵用......

事到如今,看来这种方法应该是行不通了,还有其他办法,当然有!

首先想到的就是用selenium+chrome模拟浏览器去将数据采集下来,这种方法虽然有些繁琐,且一直为高级爬虫工程师所不齿,但是我大中华某位伟人曾经说过:“不管黑猫白猫,只要抓住耗子的就是好cat”。

说干就干!

立马在电脑上开始安装selenium,chromedriver,至于chrome,因为公司配的都是苹果电脑(不要问为啥,就是这么豪横!),但是我的是M1芯片的,所以要使用ARM架构的chrome。

安装步骤,以及对应版本的chromedriver就不展示了,总之万事皆备,只欠代码了!

忙不迭的将原来写过测试某宝的代码贴上测试一波,其中覆盖window.navitor.webdirver的值都已经妥妥的安排明白了,但是,竟然不行!

打开的浏览器界面,依然停留在五秒盾,我与对面的数据依旧还有一盾之隔!

怎么办?!怎么办?!领导限定的日期已经到了,再不出数据,就要被用键盘打死了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/949281
推荐阅读
相关标签