无头浏览器
from selenium import webdriver
#创建功能对象
options = webdriver.ChromeOptions()
options.add_argument("--headless")
#无头浏览器
browser = webdriver.Chrome(options=options)
移动鼠标
from selenium import webdriver
#导入鼠标事件类
from selenium.webdriver import ActionChains
#open browser
browser = webdriver.Chrome()
browser.maximize_window()
#get page
browser.get("http://www.baidu.com")
time.sleep(.3)
#find element
set_node = browser.find_element_by_xpath("//*[@id='s-usersetting-top']")
#实例化鼠标事件
ActionChains(browser).move_to_element(set_node).perform()
切换窗口句柄
一个页面标签页就是一个句柄,在点击超链接的时候,通常都是新打开一个标签页,但是browser对象还是停留在旧的标签页,所以要切换到新的标签页,才可以在新页面中提取数据
#获取所有的句柄列表
handle_list = browser.window_handles
browser.switch_to.window(handle_list[i])
案例
"""
抓取行政区域代码
"""
from selenium import webdriver
import time
url = "http://www.mca.gov.cn/article/sj/xzqh/2020/"
options = webdriver.ChromeOptions()
options.add_argument("--headless")
#open the browser
browser = webdriver.Chrome(options=options)
browser.maximize_window()
#get page
browser.get(url)
time.sleep(1)
#find element
browser.find_element_by_xpath('//*[@id="list_content"]/div[2]/div/ul/table/tbody/tr[3]/td[2]/a').click()
#get all handles
handle_list = browser.window_handles
#switch to new tag page
browser.switch_to.window(handle_list[1])
#
tr_list = browser.find_elements_by_tag_name("tr")
for tr in tr_list:
print(tr.text)