selenium爬虫问题汇总
基本框架#
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
# 打开driver
driver = webdriver.Edge("./msedgedriver.exe")
# 请求url
driver.get("https://baidu.com")
# 根据XPATH定位元素,如果XPATH定位不到则尝试适用CLASS定位
input = driver.find_element(By.XPATH, '//*[@id="kw"]')
# 往输入框输入元素
input.clear()
input.send_keys("selenium")
# 点击按钮
submit = driver.find_element(By.XPATH, '//*[@id="su"]')
submit.click()
遇到的问题#
打开文件乱码#
根据文件的编码方式,在打开文件时指定解码方式即可
f = open('test.txt', 'r', encoding='UTF-8')
Message: element not interactable#
有些元素会在鼠标移动到其上方后改变自身属性,所以需要模拟鼠标并二次定位
action = ActionChains(driver)
btn = driver.find_element(
By.XPATH, '//*[@id="app"]/button')
action.move_to_element(btn).perform()
time.sleep(1) # sleep一下等待页面变化完成
new_btn = driver.find_element(
By.XPATH, '//*[@id="app"]/button')
new_btn.click()
定位不到元素#
- 检查frame,可能需要进行switch_to_frame()
- 适当进行sleep()
作者:yuxiayizhengwan
出处:https://www.cnblogs.com/yuxiayizhengwan/p/16824058.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库