使用Python實現(xiàn)博客上進(jìn)行自動翻頁
先上一張代碼及代碼運行后的輸出結(jié)果的圖!
下面上代碼:
# coding=utf-8 import os import time from selenium import webdriver #打開火狐瀏覽器 需要V47版本以上的 driver = webdriver.Firefox()#打開火狐瀏覽器 url = "http://codelife.ecit-it.com"#這里打開我的博客網(wǎng)站 driver.get(url)#設(shè)置火狐瀏覽器打開的網(wǎng)址 time.sleep(2) #使用xpath進(jìn)行多路徑或多元素定位,用法看官網(wǎng)http://selenium-python.readthedocs.io/locating-elements.html elem_dh = driver.find_elements_by_xpath("http://div[@class='pagination pagination-large']/ul/li/a") print ("我是剛獲取的翻頁按鈕的路徑數(shù)組:",elem_dh) print ("下一頁按鈕元素:",elem_dh[2]) time.sleep(5) #獲取當(dāng)前窗口句柄 now_handle = driver.current_window_handle #獲取當(dāng)前窗口句柄 print ("我是當(dāng)前窗口的句柄:",now_handle)#打印窗口句柄 是一串?dāng)?shù)字 time.sleep(10) #循環(huán)獲取界面 for elem in elem_dh: print ("我是翻頁按鈕上的文本信息:",elem.text) #獲取元素的文本值 print ("我是翻頁按鈕的地址",elem.get_attribute('href')) #獲取元素的href屬性值 elem.click()#點擊進(jìn)入新的界面 _blank彈出 print ("剛翻頁完成了!") time.sleep(20)
代碼為了讓大家能看清楚是怎么回事,代碼我已經(jīng)加了注解。
運行上面的代碼后執(zhí)行的結(jié)果如下:
>>> 我是剛獲取的翻頁按鈕的路徑數(shù)組: [<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="b4375c0c-a3b7-42b9-aa73-ed513699718e", element="782b0162-44eb-4710-bbeb-fc4402ec7cdc")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="b4375c0c-a3b7-42b9-aa73-ed513699718e", element="40e0eede-4ecb-4d95-850f-aa3e6b18e360")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="b4375c0c-a3b7-42b9-aa73-ed513699718e", element="2665129e-ce82-4018-bfe4-a8a6ac300a19")>] 我是當(dāng)前窗口的句柄: 2147483652 我是翻頁按鈕上的文本信息: « 上一頁 我是翻頁按鈕的地址 None 剛翻頁完成了! 我是翻頁按鈕上的文本信息: 2 我是翻頁按鈕的地址 http://codelife.ecit-it.com/page2 剛翻頁完成了! 我是翻頁按鈕上的文本信息: 下一頁 » 我是翻頁按鈕的地址 http://codelife.ecit-it.com/page2 剛翻頁完成了!
很多同學(xué)會問運行中是個什么情況,給大家上幾張圖片:
上圖是自動在地址欄輸入http:codelife.ecit-it.com,并加載博客站點。
默認(rèn)加載的是博客第一頁的內(nèi)容哦。
經(jīng)過等待,等待的過程中千萬別走神,否則會錯過了哦!上圖已經(jīng)點擊了,還好我眼疾手快截到圖了。
點擊完第二頁后就跳轉(zhuǎn)到第二頁去了。
觀察仔細(xì)的同學(xué)會發(fā)現(xiàn),我后面有一行代碼是后來加上去的。
print ("下一頁按鈕元素:",elem_dh[2])
加入上面一行代碼將可以打印出博客上的”下一頁“按鈕元素的定位數(shù)據(jù)。
我們可以看到,下一頁的元素信息打印出來了。如果有同學(xué)需要只點擊”下一頁“按鈕進(jìn)行翻頁的話,可以用到這個元素數(shù)組。
關(guān)于元素的定位官網(wǎng)有詳細(xì)的用法,在此不詳細(xì)介紹,自備樓梯http://selenium-python.readthedocs.io/locating-elements.html
當(dāng)然,開發(fā)環(huán)境大家一寫要安裝完好,安裝的插件比較多,如果上面代碼大家進(jìn)行出錯的話,說明大家的開發(fā)環(huán)境有問題,或是少插件,或是版本號與插件不對應(yīng)。
本人電腦上的Python版本是3.6.2,安裝的pywin32也是3.6版本的。
今天就寫到這了,后面再繼續(xù)跟大家分享,一起進(jìn)步。
相關(guān)文章
基于Python實現(xiàn)剪切板實時監(jiān)控方法解析
這篇文章主要介紹了基于Python實現(xiàn)剪切板實時監(jiān)控方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-09-09詳解model.train()和model.eval()兩種模式的原理與用法
這篇文章主要介紹了詳解model.train()和model.eval()兩種模式的原理與用法,相信很多沒有經(jīng)驗的人對此束手無策,那么看完這篇文章一定會對你有所幫助2023-03-03