某网站防 Selenium 爬取的方案和解决方案
2023-03-15
#python
#selenium
前言
最近在爬取某网站的使用 selenium 模拟登录,发现手动登录一切正常,但是一旦使用 selenium,最后提交事件无法被触发,导致无法登录,显然 selenium 被检测出来了。所以猜测可能是 selenuim 的某种特性被检测出来,然后导致爬虫被 ban 了。
解决方法
定位问题
从网上检索不少资料,在 How Javascript is Used to Block Web Scrapers? 中发现一个
![illustration of natural vs automated browser](https://camo.githubusercontent.com/f9fab49b788192aead40f40faa222ac7b9c1a1acbb543f2dcfc682160cd95361/68747470733a2f2f7363726170666c792e696f2f626c6f672f636f6e74656e742f696d616765732f323032322f30332f62726f777365722d6175746f6d6174696f6e2d6a732d7661726961626c65732d312e737667)
navigator.webdriver
的属性,在常规浏览器下这个值都是False
,而在自动化下浏览器这个值为True
猜测有可能是这个原因,接下来就是修改在 selenium 这个值为
False
方案
核心代码如下:
经过测试完美模拟登录成功。
参考链接