第三章 通过Selenium模拟浏览器抓取
Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,浏览器自动按照脚本代码做出单击、输入、验证等操作,就像用户在操作一样
安装:pip install Selenium
安装浏览器驱动 driver,需注意浏览器driver需要放在python scripts路径下,并将路径加入系统环境变量
例:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com/")
selenium通过抓取元素来定定位所选中的所要进行的操作
例:
find_element_by_css_selector:通过元素的class选者,如,
find_element_by_xpath:通过xpath选者,如, 可以使用driver.find_element_by_xpath("//form[@id=“loginForm”]")
find_element_by_id:通过元素的id选择,如
test
可以使用 driver.find_element_by_id(“bdy-inner”)
find_element_by_name:通过元素的name选择,如<div name="username"type=“text”/>,可以使用find_element_by_name(“username”)
find_element_by_link_text:通过链接地址选择,如 Continue可以使用,driver.find_element_by_link_text(“Continue”)
find_element_by_partial_link_text:通过链接的部分地址选择,如 Continue 可以使用,driver.find_element_by_partial_link_text(“Conti”)
find_element_by_tag_name:通过元素的名称选择,如
Welcome
可以使用driver,find_element_by_tag_name(“h1”)find_element_by_class_name:通过元素的class选择,如
Site content goes here.
可以使用,driver.find_element_by_class_name(“content”)注需要找多个元素时,可以在element后面加s,变成elements
xpath和css_selector 是比较好的方法,一方面清晰,一方面对其它方法定位元素比较准确
常见的操作元素方法:
Clear:清除元素的内容
send_keys:模拟按键输入
Click:单击元素
Submiit:提交表单