亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Python selenium模擬網頁點擊爬蟲交管12123違章數據

瀏覽:112日期:2022-06-14 17:00:56

在上一篇文章《Python教程—模擬網頁點擊爬蟲定位系統》講解怎么通過模擬點擊方式爬取車輛定位數據,本次介紹怎么以模擬點擊方式進入交管12123爬取車輛違章數據,本文直接講解過程,使用的命令解釋見上一篇文章。本文同《Python教程—模擬網頁點擊爬蟲定位系統》同樣為企業中實際的爬蟲案例,如果之后想進入車企行業可以做個了解。

準備工具:spyder、selenium庫、google瀏覽器及對應版本的chromedriver.exe

效果

Python selenium模擬網頁點擊爬蟲交管12123違章數據

注:分享此案例目的是為了幫助同行解放雙手,更好管理企業資產,本文程序以刪除網址、賬號密碼,該網址比較麻煩的一點是開始點擊登錄的時候網頁可能會有其他彈窗出現,使得原有路徑改變,程序會因為找不到對應路徑而報錯,重新執行程序即可。除了模擬點擊登錄,還可以直接通過Cookie直接登錄網頁,這種方式就可以繞過登錄的繁瑣步驟。

調用庫

from selenium import webdriverimport timeimport csvimport datetimefrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.support.wait import WebDriverWaitimport mathimport xlrd

讀取需要查詢的車牌號

Python selenium模擬網頁點擊爬蟲交管12123違章數據

data = xlrd.open_workbook(’cheliang.xlsx’)

創建瀏覽,打開網頁

opt = webdriver.ChromeOptions() #創建瀏覽#opt.set_headless() #無窗口模式driver = webdriver.Chrome(options=opt) #創建瀏覽器對象driver.maximize_window() #最大化窗口​print('正在打開網頁')driver.get(’’) #打開網頁

依次點擊單位登錄、輸入賬號、密碼、點擊驗證碼填寫區域觸發圖片、勾選、輸入驗證碼、點擊登錄

Python selenium模擬網頁點擊爬蟲交管12123違章數據

time.sleep(3) #加載等待print('點擊單位登錄')time.sleep(3) #加載等待driver.find_element_by_xpath('/html/body/div[1]/div[2]/div/div[2]/div[2]/button').click()#點擊單位登錄​time.sleep(3) #加載等待print('正在填寫賬號')elem = driver.find_element_by_xpath('/html/body/div[4]/div/div[1]/div/div[2]/form[1]/div[1]/div/input')# 清空原有內容elem.clear()# 填入賬號elem.send_keys('')​time.sleep(1) #加載等待print('正在填寫密碼')elem = driver.find_element_by_xpath('/html/body/div[4]/div/div[1]/div/div[2]/form[1]/div[2]/div/input')# 清空原有內容elem.clear()# 填入密碼elem.send_keys('')​time.sleep(1) #加載等待print('正在查看驗證碼')driver.find_element_by_xpath('/html/body/div[4]/div/div[1]/div/div[2]/form[1]/div[3]/div/input').click()#查看驗證碼print('請輸入驗證碼')yanzhengma=input()​time.sleep(1) #加載等待driver.find_element_by_xpath('/html/body/div[4]/div/div[1]/div/div[2]/form[1]/div[4]/div/label/input').click()#勾選​time.sleep(1) #加載等待# 填入驗證碼elem = driver.find_element_by_xpath('/html/body/div[4]/div/div[1]/div/div[2]/form[1]/div[3]/div/input')elem.clear()elem.send_keys(str(yanzhengma))​time.sleep(1) #加載等待print('正在登陸')driver.find_element_by_xpath('/html/body/div[4]/div/div[1]/div/div[2]/form[1]/div[5]/button').click()#點擊

點擊違法查詢,設置查詢時間

Python selenium模擬網頁點擊爬蟲交管12123違章數據

driver.find_element_by_xpath('/html/body/div[4]/div/div[1]/div/div[2]/form[1]/div[5]/button').click()#點擊 time.sleep(3) #加載等待driver.find_element_by_xpath('/html/body/div[4]/div/div[1]/ul/li[5]/a').click()#點擊違法查詢 time.sleep(1) #加載等待driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div[1]/div[2]/form/div[1]/div/div[1]/span/i').click()#點擊選擇日期 for i in range(3): time.sleep(0.5) #加載等待 driver.find_element_by_xpath('/html/body/div[6]/div[4]/table/thead/tr/th[1]/i').click()#點擊 time.sleep(0.5) #加載等待driver.find_element_by_xpath('/html/body/div[6]/div[4]/table/tbody/tr/td/span[1]').click()#點擊 time.sleep(0.5) #加載等待driver.find_element_by_xpath('/html/body/div[6]/div[3]/table/tbody/tr[2]/td[1]').click()#點擊

循環依次查詢每個車牌違章信息,每次都需要清空上次輸入,填寫本次查詢車牌,識別有多少條數據,共多少頁,每頁最多展示10條,最后一頁有多少條數據

Python selenium模擬網頁點擊爬蟲交管12123違章數據

for ii in range(0,nrows): rowValues= table.row_values(ii) #某一行數據 print(’正在讀取第’+str(ii+1)+’輛車’)# 填寫車牌 time.sleep(0.5) #加載等待 elem = driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div[1]/div[2]/form/div[3]/div/input') elem.clear() elem.send_keys(rowValues)#輸入車牌 time.sleep(0.1) #加載等待 driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div[1]/div[2]/form/div[4]/button').click()#點擊查詢 time.sleep(0.5) #加載等待 result=driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div[2]/div[1]/div/p/span').text#總違章條數 result=int(result) a=math.ceil(result/10)#總頁數 b=result%10 #除余

讀取列表中的數據,其中扣分和罰款需要點擊'查看詳情',從彈窗中讀取數據

result1=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[1]'))).textresult2=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[2]'))).textresult3=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[3]'))).textresult4=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[4]'))).textresult5=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[5]'))).textresult6=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[6]'))).textresult7=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[7]'))).textWebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[8]/a'))).click()#查看詳情,打開彈窗time.sleep(1) #加載等待result8=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//form[@class=’form-horizontal’]/div[7]/span[2]'))).textresult9=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//form[@class=’form-horizontal’]/div[8]/span[2]'))).textresult=[result1,result2,result3,result4,result5,result6,result7,result8,result9]R.append(result)WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//div[@class=’modal-footer ui_modal’]/button'))).click()#關閉彈窗time.sleep(0.5) #加載等待

每讀取一輛車的數據就寫入表格中

with open(wenjian,’w’,encoding=’utf-8’,newline=’’) as fp: writer = csv.writer(fp) writer.writerows(R) #寫入數據完整代碼

from selenium import webdriverimport timeimport csvimport datetimefrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.support.wait import WebDriverWaitimport mathimport xlrddata = xlrd.open_workbook(’cheliang.xlsx’)table = data.sheets()[0]nrows = table.nrows #行數ncols = table.ncols #列數 opt = webdriver.ChromeOptions() #創建瀏覽#opt.set_headless() #無窗口模式driver = webdriver.Chrome(options=opt) #創建瀏覽器對象driver.maximize_window() #最大化窗口 print('正在打開網頁')driver.get(’’) #打開網頁 time.sleep(3) #加載等待print('點擊單位登錄')time.sleep(3) #加載等待driver.find_element_by_xpath('/html/body/div[1]/div[2]/div/div[2]/div[2]/button').click()#點擊單位登錄 time.sleep(3) #加載等待print('正在填寫賬號')elem = driver.find_element_by_xpath('/html/body/div[4]/div/div[1]/div/div[2]/form[1]/div[1]/div/input')# 清空原有內容elem.clear()# 填入賬號elem.send_keys('') time.sleep(1) #加載等待print('正在填寫密碼')elem = driver.find_element_by_xpath('/html/body/div[4]/div/div[1]/div/div[2]/form[1]/div[2]/div/input')# 清空原有內容elem.clear()# 填入密碼elem.send_keys('') time.sleep(1) #加載等待print('正在查看驗證碼')driver.find_element_by_xpath('/html/body/div[4]/div/div[1]/div/div[2]/form[1]/div[3]/div/input').click()#查看驗證碼print('請輸入驗證碼')yanzhengma=input() time.sleep(1) #加載等待driver.find_element_by_xpath('/html/body/div[4]/div/div[1]/div/div[2]/form[1]/div[4]/div/label/input').click()#勾選 time.sleep(1) #加載等待# 填入驗證碼elem = driver.find_element_by_xpath('/html/body/div[4]/div/div[1]/div/div[2]/form[1]/div[3]/div/input')elem.clear()elem.send_keys(str(yanzhengma)) time.sleep(1) #加載等待print('正在登陸')driver.find_element_by_xpath('/html/body/div[4]/div/div[1]/div/div[2]/form[1]/div[5]/button').click()#點擊 time.sleep(3) #加載等待driver.find_element_by_xpath('/html/body/div[4]/div/div[1]/ul/li[5]/a').click()#點擊違法查詢 time.sleep(1) #加載等待driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div[1]/div[2]/form/div[1]/div/div[1]/span/i').click()#點擊選擇日期 for i in range(3): time.sleep(0.5) #加載等待 driver.find_element_by_xpath('/html/body/div[6]/div[4]/table/thead/tr/th[1]/i').click()#點擊 time.sleep(0.5) #加載等待driver.find_element_by_xpath('/html/body/div[6]/div[4]/table/tbody/tr/td/span[1]').click()#點擊 time.sleep(0.5) #加載等待driver.find_element_by_xpath('/html/body/div[6]/div[3]/table/tbody/tr[2]/td[1]').click()#點擊 wenjian=datetime.datetime.now().strftime(’%Y-%m-%d-%H%M%S’) #以開始時間作為數據導出的表格文件名wenjian=wenjian+’.csv’ R=[]for ii in range(0,nrows): rowValues= table.row_values(ii) #某一行數據 print(’正在讀取第’+str(ii+1)+’輛車’) # 填寫車牌 time.sleep(0.5) #加載等待 elem = driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div[1]/div[2]/form/div[3]/div/input') elem.clear() elem.send_keys(rowValues)#輸入車牌 time.sleep(0.1) #加載等待 driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div[1]/div[2]/form/div[4]/button').click()#點擊查詢 time.sleep(0.5) #加載等待 result=driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div[2]/div[1]/div/p/span').text#總違章條數 result=int(result) a=math.ceil(result/10)#總頁數 b=result%10 #除余for i in range(1,a):for j in range(1,11):result1=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[1]'))).text result2=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[2]'))).text result3=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[3]'))).text result4=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[4]'))).text result5=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[5]'))).text result6=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[6]'))).text result7=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[7]'))).text #result1=driver.find_element_by_xpath('//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[1]').text #result2=driver.find_element_by_xpath('//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[2]').text #result3=driver.find_element_by_xpath('//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[3]').text #result4=driver.find_element_by_xpath('//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[4]').text #result5=driver.find_element_by_xpath('//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[5]').text #result6=driver.find_element_by_xpath('//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[6]').text #result7=driver.find_element_by_xpath('//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[7]').text WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[8]/a'))).click()#查看詳情,打開彈窗 time.sleep(1) #加載等待 #driver.find_element_by_xpath('//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[8]/a').click()#點擊列表中的元素 #time.sleep(0.5) #加載等待 result8=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//form[@class=’form-horizontal’]/div[7]/span[2]'))).text result9=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//form[@class=’form-horizontal’]/div[8]/span[2]'))).text #result8=driver.find_element_by_xpath('//form[@class=’form-horizontal’]/div[7]/span[2]').text #result9=driver.find_element_by_xpath('//form[@class=’form-horizontal’]/div[8]/span[2]').text result=[result1,result2,result3,result4,result5,result6,result7,result8,result9] R.append(result) WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//div[@class=’modal-footer ui_modal’]/button'))).click()#關閉彈窗 time.sleep(0.5) #加載等待 #driver.find_element_by_xpath('//div[@class=’modal-footer ui_modal’]/button').click()#點擊列表中的元素 #time.sleep(0.5) #加載等待 driver.find_element_by_link_text('下一頁').click()#翻頁time.sleep(0.5) #加載等待 if b>0:for j in range(1,b+1): result1=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[1]'))).text result2=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[2]'))).text result3=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[3]'))).text result4=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[4]'))).text result5=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[5]'))).text result6=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[6]'))).text result7=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[7]'))).text WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[8]/a'))).click()#查看詳情,打開彈窗 time.sleep(1) #加載等待 result8=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//form[@class=’form-horizontal’]/div[7]/span[2]'))).text result9=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//form[@class=’form-horizontal’]/div[8]/span[2]'))).text result=[result1,result2,result3,result4,result5,result6,result7,result8,result9] R.append(result) WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//div[@class=’modal-footer ui_modal’]/button'))).click()#關閉彈窗 time.sleep(0.5) #加載等待 if b==0:for j in range(1,11): result1=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[1]'))).text result2=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[2]'))).text result3=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[3]'))).text result4=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[4]'))).text result5=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[5]'))).text result6=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[6]'))).text result7=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[7]'))).text WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//table[@id=’my-msg-list’]/tbody/tr['+str(j)+']/td[8]/a'))).click()#查看詳情,打開彈窗 time.sleep(1) #加載等待 result8=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//form[@class=’form-horizontal’]/div[7]/span[2]'))).text result9=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//form[@class=’form-horizontal’]/div[8]/span[2]'))).text result=[result1,result2,result3,result4,result5,result6,result7,result8,result9] R.append(result) WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//div[@class=’modal-footer ui_modal’]/button'))).click()#關閉彈窗 time.sleep(0.5) #加載等待 time.sleep(0.5) #加載等待 with open(wenjian,’w’,encoding=’utf-8’,newline=’’) as fp:writer = csv.writer(fp)writer.writerows(R) #寫入數據

到此這篇關于Python selenium模擬網頁點擊爬蟲交管12123違章數據的文章就介紹到這了,更多相關Python selenium模擬點擊爬蟲內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

相關文章:
主站蜘蛛池模板: 国产一国产一有一级毛片 | 日本五级黄色片 | 宅男69免费永久网站 | 亚洲欧美中文字幕高清在线一 | 手机在线观看精品国产片 | 免费一级毛片 | 国产在线色视频 | 在线免费观看一级毛片 | 国产一区中文字幕在线观看 | 欧美日本一本 | 青青青视频免费一区二区 | 国产亚洲精品麻豆一区二区 | 欧美亚洲国产第一页草草 | 亚洲精品久久久久久中文字幕小说 | 99久久综合 | 在线日本看片免费人成视久网 | 中文字字幕 | 国产欧美日韩精品a在线观看高清 | 日韩在线aⅴ免费视频 | 久久久成人啪啪免费网站 | 欧美日韩在线观看精品 | 欧美精品一区二区三区在线播放 | 青青青国产观看免费视频 | 国产精品不卡在线观看 | 精品福利一区二区免费视频 | 欧美一级毛片片免费 | 日日麻批| 慈禧级淫片a级中文在线 | 日韩国产一区二区 | 99久久中文字幕伊人情人 | 国产成人www免费人成看片 | 成人免费久久精品国产片久久影院 | 免费a级毛片在线播放 | 2022国产精品自拍 | 麻豆剧场 | 久久久久国产精品美女毛片 | 精品一区国产 | 九九综合视频 | 国产亚洲欧美在线播放网站 | 国产精品1024 | 粉嫩极品国产在线播放 |