selenium相关配置
ChromeDriver驱动版本:https://googlechromelabs.github.io/chrome-for-testing/
# 创建一个配置对象
options = webdriver.ChromeOptions()
# 代理设置
options.add_argument('--proxy-server=http://221.131.165.71:27208')
# 携带本地用户信息启动,注意:在使用的时候要将运行的谷歌浏览器全部关闭
# --user-data-dir 携带的谷歌的本地信息,默认路径
options.add_argument("--user-data-dir=C:/Users/Administrator/AppData/Local/Google/Chrome/User Data/")
# 去除网站的一些自动化检测
# 此步骤很重要,设置为开发者模式,防止被各大网站识别出来使用了Selenium
options.add_experimental_option('excludeSwitches', ['enable-automation'])
# 就是这一行告诉chrome去掉了webdriver痕迹,令navigator.webdriver=false,极其关键
options.add_argument("--disable-blink-features=AutomationControlled")
# 修改为无界面模式
# 把chrome设置成无头模式,不论windows还是linux都可以,自动适配对应参数
options.add_argument('--headless')
# 封禁图片提高访问速度
prefs = {"profile.managed_default_content_settings.images": 2}
options.add_experimental_option("prefs", prefs)
options.add_argument('--disable-gpu')
# 实例化带有配置的driver对象
driver = webdriver.Chrome(options=options)
# 正常的使用selenium.....
# 优化等待页面
# selenium等待的三种方式:强制等待 隐式等待 显式等待
driver.implicitly_wait(10) # 隐式等待
driver.get("https://www.baidu.com")
# 自己动手写显式等待
def find_element_by_xpath(xpath):
n = 0
# 等待优化
while n < 30:
try:
time.sleep(0.5)
goods_list = driver.find_elements_by_xpath(xpath)
if len(goods_list) < 需要的数据量,如果不到这个数据量就继续访问,如果到就返回数据:
print("继续加载...")
return goods_list
except:
print("节点还没有加载完成...")
本文作者:愿风带走思绪
本文链接:https://www.cnblogs.com/lsixu/p/18406798
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?