python selenium爬虫(模拟鼠标、键盘输入)

环境

  1. pip install selenium
  2. 下载浏览器对应的driver,chromedriver地址:http://chromedriver.storage.googleapis.com/index.html,注意需要和自己的浏览器版本一致,地址栏输入chrome://version/即可查看,下载解压后的driver文件需要放到PATH路径中

打开一个页面

import selenium.webdriver
browser = selenium.webdriver.Chrome()
browser.get("https://www.jianweidata.com/Index")

获取指定元素

element = browser.find_element_by_xpath('//*[@id="app"]/div[2]/div/ul/li[1]/span')
print(element.text)
#获取元素的属性,href height class等
print(element.get_attribute("class"))

简单说一下xpath的语法:

//a #表示所有a标签元素
//* #就是所有元素
//*[@class="app"] #就是class属性为app的所有元素
//*[@class="app"]/div[2] #就是class属性为app的所有元素下的第二个div
#可以在浏览器网页上右键检查,到网页源码,右键 复制指定元素的xpath
#可以通过浏览器的扩展插件验证你的xpath是否正确,浏览器->自定义及控制->更多工具->扩展程序,然后搜索xpath选一个即可

鼠标移动到指定元素上

from selenium.webdriver import ActionChains
ac = ActionChains(browser)
ac.move_to_element(element)
#睡眠是为了页面能响应上一个动作,比如下拉列表等
time.sleep(3)
ac.click_and_hold(bs.find_element_by_xpath('//*[@id="app"]/div[2]/div/ul/li[1]/div/a[1]')).release()
ac.perform() #执行action chains中存储的动作,最后必须执行这句

其他鼠标动作

  • move_by_offset(xoffset, yoffset) 鼠标移动到坐标位置
  • move_to_element_with_offset(to_element, xoffset, yoffset) 移动到元素偏移位置
  • click(on_element=None) 鼠标单击
  • click_and_hold(on_element=None) 鼠标单击并且按住不放
  • release() 鼠标松开
  • context_click(on_element=None) 右击
  • double_click(on_element=None) 双击
  • drag_and_drop(source, target) 拖拽到指定元素处
  • drag_and_drop_by_offset(source, xoffset, yoffset) 拖拽到指定位置
  • key_down(value, element=None) 按住某个键,使用这个方法可以方便的

键盘操作

  • key_up(value, element=None) 松开某个键,可以配合上面的方法实现按下Ctrl+c并且释放。
  • send_keys(*keys_to_send) 向某个元素位置输入值
  • send_keys_to_element(element, *keys_to_send) 向指定的元素输入数据

键盘输入

#输入框输入
from selenium.webdriver.common.keys import Keys
browser.find_element_by_xpath('//*[@id="username"]').send_keys("admin")
bs.find_element_by_xpath('//*[@id="password"]').send_keys("12345678", Keys.ENTER)#输入密码并回车
#Keys中有各种控制字符,方便使用

你可能感兴趣的:(推荐)