Selenium是一个自动化测试工具,常用于模拟用户在浏览器中的操作。然而,有些网站会使用反爬虫机制来检测Selenium,并阻止爬虫获取数据。为了避免被检测,可以尝试以下几种方法:

  1. 更换User-Agent:Selenium使用的默认User-Agent会暴露自己的身份,可以通过设置不同的User-Agent来模拟不同的浏览器,以隐藏Selenium的身份。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3")

driver = webdriver.Chrome(options=options)
  1. 控制浏览器窗口大小:有些网站会检测浏览器窗口的大小来判断是否是自动化操作。可以使用以下代码来设置浏览器窗口的大小,以避免被检测。
driver.set_window_size(1366, 768)  # 设置浏览器窗口大小为1366x768
  1. 延时操作:有些网站会检测用户的操作速度,如果速度过快,则判断为自动化操作。可以使用time.sleep()方法来添加延时操作,模拟真实用户的等待时间。
import time

time.sleep(3)  # 等待3秒钟
  1. 使用代理IP:使用代理IP可以隐藏真实的IP地址,降低被检测到的概率。可以使用第三方库如requests或者selenium-wire来设置代理IP。
from selenium import webdriver

PROXY = "http://ip:port"
webdriver.DesiredCapabilities.CHROME['proxy'] = {
    "httpProxy": PROXY,
    "ftpProxy": PROXY,
    "sslProxy": PROXY,
    "proxyType": "MANUAL",
}

driver = webdriver.Chrome()
  1. 使用无头模式:无头模式可以让浏览器在后台运行,不显示界面,降低被检测到的概率。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument("--headless")  # 启用无头模式

driver = webdriver.Chrome(options=options)

需要注意的是,这些方法并不能保证100%避免被检测到,因为网站的反爬虫机制也在不断升级。在使用Selenium爬取网站数据时,应遵守网站的使用规则,避免对网站造成过大的负担


原文地址: http://www.cveoy.top/t/topic/iSYn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录