重庆网站建设cqhtwl,大学社团网站建设,中国市场营销培训网,广州企业网站推广selenium模块和爬虫之间的关联
便捷的获取网站中动态加载的数据便捷实现模拟登录
什么是selenium模块
基于浏览器自动化的一个模块
selenium使用流程#xff1a;
- 环境安装#xff1a;pip install selenium
- 下载一个浏览器的驱动程序#xff08;谷歌浏览器#xff…selenium模块和爬虫之间的关联
便捷的获取网站中动态加载的数据便捷实现模拟登录
什么是selenium模块
基于浏览器自动化的一个模块
selenium使用流程
- 环境安装pip install selenium
- 下载一个浏览器的驱动程序谷歌浏览器- 下载路径http://chromedriver.storage.googleapis.com/index.html资源绑定了Chrome116对应的chhromedriver.exe
selenium的操作代码
发起请求get(url)标签定位find_element(By.属性, value) value是值标签交互send_keys(xxx)执行js程序excute_script(jsCode)前进、后退back(), forward()关闭浏览器quit()
标签定位中By的属性有ID idXPATH xpathLINK_TEXT link textPARTIAL_LINK_TEXT partial link textNAME nameTAG_NAME tag nameCLASS_NAME class nameCSS_SELECTOR css selectorselenium处理iframe如果定位的标签存在于iframe中则表明是在标签页的一个子标签页中必须使用switch_to.frame(id)动作链(拖动)from selenium.webdriver import ActionChains 实例化一个动作链对象action ActionChains(bro)click_and_holddiv长按且点击操作move_by_offset(x,y)perform()让动作链立即执行action.release()释放动作链对象
selenium的常用操作自动化
找到输入框
找到搜索按钮
import time
from selenium import webdriver
from time import sleep
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import Byservice Service(executable_path./chromedriver.exe)
browser webdriver.Chrome(serviceservice)
browser.get(https://www.taobao.com/)# 标签定位
search_input browser.find_element(By.ID, valueq) # 通过id为q找到搜索框
# 标签交互
search_input.send_keys(iphone) #发送字符串# 执行一组js程序
browser.execute_script(window.scrollTo(0,document.body.scrollHeight))
sleep(2)
# 点击搜索按钮
btn browser.find_element(By.CSS_SELECTOR, .btn-search) #CSS_SELECTOR用法 .classname选择具有指定类名的元素。
btn.click() # 点击按钮
sleep(5)browser.get(https://www.baidu.com)
sleep(2)# 回退
browser.back()
time.sleep(2)# 前进
browser.forward()
sleep(2)# 退出浏览器
browser.quit()
By有的函数ID idXPATH xpathLINK_TEXT link textPARTIAL_LINK_TEXT partial link textNAME nameTAG_NAME tag nameCLASS_NAME class nameCSS_SELECTOR css selector04.动作链和iframe的处理.py
from selenium import webdriver
from time import sleepfrom selenium.webdriver import ActionChains
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import Byservice Service(executable_path./chromedriver.exe)
browser webdriver.Chrome(serviceservice)
browser.get(https://www.runoob.com/try/try.php?filenamejqueryui-api-droppable)# 如果定位的标签是存在于iframe标签之中的则必须通过如下操作进行标签定位
browser.switch_to.frame(iframeResult) # 切换浏览器标签定位的作用域 参数为iframe标签的id
div browser.find_element(By.ID, draggable)# 动作链
action ActionChains(browser)
# 点击长按指定的标签
action.click_and_hold(div)
for i in range(5):# perform()立即执行动作链操作# move_by_offset(x, y): x:水平方向 y:垂直方向action.move_by_offset(18, 0).perform()sleep(.5)# 释放动作链
action.release().perform()sleep(5)
browser.quit()