我試圖刮研究網站,我卡住了。我希望刮板讀取頁面源代碼,並將其附加到本地HTML文件中,以便我可以分析校外數據。我已經嘗試了BeautifulSoup
和Scrapy
,但我發現我需要使用Selenium
與頁面進行交互以瀏覽我的大學的認證系統。 (我不包括那個代碼,因爲它與我的問題相關)。如何刮頁HTML並遵循硒中的下一個鏈接
當我運行腳本時,它導航到頁面並單擊鏈接,但它只保存第一頁的HTML。然後它會在每次點擊鏈接時重複並追加該頁面的HTML。
如何使用Selenium
點擊下一頁鏈接,刮掉HTML並保存到文件,直到到達最後一頁?
source = driver.page_source
while True:
with open("test.html", "a") as TestFile:
TestFile.write(source)
try:
driver.implicitly_wait(200)
driver.find_element_by_css_selector('li.next').click()
except AttributeError:
break
編輯:我添加除AttributeError的到和接收到的下面的錯誤。
selenium.common.exceptions.StaleElementReferenceException:消息: 陳舊元素參考:元素沒有連接到網頁文件
我的假設是,我需要放慢.click()
,這是爲什麼我原本有隱含的等待,但似乎並沒有這樣做。
擺脫你赤裸的,除了你會得到一個更錯誤提示信息 – n1c9
感謝n1c9,我增加了一個AttributeError的,除了它給了我在上面添加的錯誤代碼:StaleElementReferenceException。 – woodNUFC
頁面上是否有任何彈出窗口或類似內容?或者它是否正常翻轉到下一頁?另外,當初始化webdriver時,應該設置'implicitly_wait(num)',但這只是一種風格。 – n1c9