GPS這類系統,需要鼠標點擊列表中的元素完成向地圖服務器發送請求,然后接受反饋的信息,然后在頁面彈出一個窗口顯示位置信息。
首先需要完成第一步,打開瀏覽器,輸入賬號密碼,點擊登錄,之后再是找到列表並點擊列表中的元素。
爬蟲准備:
安裝selenium : :cmd安裝 pip install selenium
下載chromedriver ,下載后將chromedriver.exe文件放至 python.exe所在目錄:
http://chromedriver.storage.googleapis.com/index.html下載
(根據你的google瀏覽器版本下載對應的chromedriver 版本)
打開登錄頁面
右鍵審查元素,點擊右上角小箭頭,鼠標指向需要填寫賬號的位置,點擊,右邊elements中會直接找到對應的網頁代碼位置
elem = driver.find_element_by_name("username")
填入賬號
elem.send_keys("XXXX")
填寫密碼同理
然后在找登錄按鈕代碼時,發現沒有id=""

這是可以Copy full Xpath找到按鈕的定位通過下命令確定按鈕位置
elem = driver.find_element_by_xpath("")

Copy下來位置代碼為/html/body/div/div[2]/div/form/div/input,直接填入命令中即可
登錄進去后,確定列表中元素的位置要和上述操作有點區別

右上方箭頭點擊列表區域時,注意右方出現的列表名稱

需要進入iframe狀態不然無法操作下面的元素
driver.switch_to.frame("mainFrame")
Copy full Xpath其中第一個元素得到代碼
/html/body/div/div[2]/div/table/tbody/tr[2]/td[1]
在填寫的時候改為,注意contentTable為網頁中列表的名稱,tr[2]/td[1]則是列表中元素中的位置
driver.find_element_by_xpath("//table[@id='contentTable']//tr[2]/td[1]")

from selenium import webdriver import time opt = webdriver.ChromeOptions() #創建瀏覽 # opt.set_headless() #無窗口模式 driver = webdriver.Chrome(options=opt) #創建瀏覽器對象 driver.get('網頁') #打開網頁 # driver.maximize_window() #最大化窗口 time.sleep(1) #加載等待 # 填入賬號 elem = driver.find_element_by_name("username") # 清空原有內容 elem.clear() # 填入賬號 elem.send_keys("賬號") time.sleep(1) #加載等待 # 填入密碼 elem = driver.find_element_by_name("password") # 清空原有內容 elem.clear() # 填入密碼 elem.send_keys("密碼") time.sleep(1) #加載等待 # 得到 登錄按鈕並單擊 elem = driver.find_element_by_xpath("/html/body/div/div[2]/div/form/div/input").click() time.sleep(2) #加載等待 driver.switch_to.frame("mainFrame") #進入iframe不然無法操作下面的元素 time.sleep(2) #加載等待 driver.find_element_by_xpath("//table[@id='contentTable']//tr[2]/td[1]").click() #點擊列表中的元素 /html/body/div/div[2]/div/table/tbody/tr[2]