0


爬虫——Selenium

爬虫——Selenium库的使用

介绍

selenium库是一个自动化测试工具,能够驱动浏览器模拟人的操作,如鼠标单击、键盘输入等。
面对JavaScript渲染问题,在数据挖掘时就需要使用selenium库

下载驱动

  1. 以下提供部分浏览器下载驱动的网址,注意:下载的驱动版本要与本机浏览器的版本一致

  2. 下载完解压,把exe文件复制到你python3的文件夹下然后再复制一份重命名为MicrosoftWebDriver.exe
    Chrome:https://chromedriver.chromium.org/downloadsEdge:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/Firefox:https://github.com/mozilla/geckodriver/releasesSafari:https://webkit.org/blog/6900/webdriver-support-in-safari-10/

    Webdriver对浏览器的操作

  3. 加载驱动from selenium import webdriverimport timedg = webdriver.Chrome()time.sleep(3)//如果驱动不在python解释器同一个目录下需要再Chrome中传入驱动的路径//wd = webdriver.Chrome(executable_path='./chromedriver.exe')

  4. 窗口操作# 最大化窗口wd.maximize_window()# 最小化窗口wd.minimize_window()# 设置窗口宽度和高度wd.set_window_size(1400,1500)# 设置窗口位置wd.set_window_position(100,100)wd.get('https://www.baidu.com/')#另开一个窗口,不在旧窗口上跳转js ="window.open('https://blog.csdn.net/qq_40216188')"driver.execute_script(js)# 关闭窗口# wd.close()wd.quit()

  5. 窗口的上滑、下滑、刷新wd.back() #后退time.sleep(3)wd.refresh() # 刷新time.sleep(3)wd.forward() # 前进

元素定位

在定位之前要导入By类

from selenium.webdriver.common.by import By

定位单个元素使用:find_element()

定位多个元素使用:find_elements(),返回值是列表

  1. 使用idwd.find_element(By.ID,id值)wd.find_elements(By.ID,id值)
  2. 使用标签的name属性定位By.NAME
  3. 使用标签的class属性定位By.CLASS_NAME
  4. 使用标签名定位By.TAG_NAME
  5. 使用link定位1. By.LINK_TEXT:定位有herf属性且内容要和第二个参数完全相同2. By.PARTIAL_LINK_TEXT:定位有herf属性且内容要和第二个参数进行模糊匹配
  6. 通过Xpath定位By.XPATH

文本输入清除

  1. send_keys(内容) 文本输入
  2. clear() 文本清空
wd.find_element(By.ID,"input").send_keys("这是文本输入")
wd.find_element(By.ID,"input").clear()

获取页面内容

  1. 标题
  2. 源码
  3. 页面连接
  4. 标签内的文本
print(wb.title)
print(wb.page_source)
print(wb.current_url)
print(wb.find_element(By.ID,"input").text)

下拉列表操作

  • 使用前需要导入from selenium.webdriver.support.select import Select
  1. Select() 判断标签元素是否为下拉列表元素,不是的话报错,是返回Select对象
  2. select_by_value() 通过下拉列表的value属性值选择选项
  3. select_by_text() 通过下拉列表的文本内容选择选项
  4. select_by_index(整数) 通过下拉列表的索引选择选项,索引从0开始
  5. options 下拉列表内options标签,返回的是一个列表

以上是一些常用方法,需要其他的可以右击Select -> 转到 -> 实现 查看源代码

鼠标控制

from selenium.webdriver.common.action_chains import ActionChains
bt = wb.find_element(By.NAME,"button")
  • 单击bt.click()
  • 双击ActionChains(wb).double_click(bt).perform()
  • 右击
  • ActionChains(wb).context_click(bt).perform()
  • 拖动参数:1. source:待拖动的元素2. target:拖至并释放的目标元素ActionChains(wb).drag_and_drop(source, target).perform()
  • 悬浮ActionChains(wb).move_to_element(collect).perform()

键盘控制

from selenium.webdriver.common.keys import Keys
in = wb.find_element(By.NAME,"input")

同时按两个键用逗号隔开,例如:in.send_keys(Keys.BACK_SPACE,’c‘)——这是ctrl+c

  • 输入文本in.send_keys(Keys.ENTER)
  • 回车in.send_keys(Keys.BACK_SPACE)
  • ctrlin.send_keys(Keys.CONTROL)
  • F1in.send_keys(Keys.F1)
  • 空格in.send_keys(Keys.SPACE)
  • Tabin.send_keys(Keys.TAB)
  • 退出键in.send_keys(Keys.ESCAPE)
  • Altin.send_keys(Keys.ALT)
  • shiftin.send_keys(Keys.SHIFT)
  • 向下键in.send_keys(Keys.ARROW_DOWN)
  • 向左键in.send_keys(Keys.ARROW_LEFT)
  • 向右键in.send_keys(Keys.ARROW_RIGHT)
  • 向上键in.send_keys(Keys.ARROW_UP)

本文转载自: https://blog.csdn.net/m0_74952636/article/details/139013865
版权归原作者 又菜又爱玩的小趴菜 所有, 如有侵权,请联系我们删除。

“爬虫——Selenium”的评论:

还没有评论