selenium反爬
时间: 2023-08-21 14:08:18 浏览: 204
Python应用实战代码-如何用Selenium 实现反反爬方案
5星 · 资源好评率100%
引用中提到,使用selenium进行网页爬取时,有些网站会检测到是selenium并封禁IP。这些网站通常是通过检测浏览器的navigator.webdriver属性来判断是否使用selenium,当使用selenium时,navigator.webdriver属性的值为true,而正常用户访问网站时为false。因此,可以通过修改navigator.webdriver属性的值来规避网站的反爬机制。可以使用以下代码来修改navigator.webdriver属性的值:
```python
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# 创建 Chrome 参数对象,设置无头模式
chrome_options = Options()
chrome_options.add_argument('--headless')
# 修改 navigator.webdriver 的值
webdriver = webdriver.Chrome(chrome_options=chrome_options)
webdriver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})
"""
})
# 正常使用Selenium进行页面爬取
webdriver.get('http://www.example.com')
# 其他操作...
```
使用上述代码可以修改navigator.webdriver的值为undefined,从而绕过网站对selenium的反爬机制。请注意,绕过网站的反爬机制可能违反该网站的使用规定,请确保在合法和合适的情况下使用selenium进行网页爬取。
阅读全文