[英]Python Selenium: How to get fresh data from the page get refreshed periodically?
我已經編寫了一個腳本,用URL打開Firefox,抓取數據並關閉。 該頁面屬於游戲站點,其中頁面通過Ajax刷新內容。
現在,一種方法是在打開的瀏覽器中獲取那些AJAX請求並在一段時間后獲取數據或刷新頁面。
對於后一種情況,我該怎么辦? 我應該在一段時間后調用該方法還是什么?
您可以實現所謂的smart wait
。
使用JavaScript從中獲取數據,因為如果沒有頁面刷新,DOM模型將不會更新,例如:
driver.execute_script('document.getElementById("demo").innerHTML')
等待一段時間,再次獲取並與之前的結果進行比較。 如果更改 - 刷新頁面,獲取數據等。
您可以使用時間庫來執行此操作。 例如:
import time
from selenium import webdriver
driver = webdriver.Firefox()
while <condicion>:
driver.get("http://www.url.org")
# extract and save data
time.sleep(5000) # whaits 5000 seconds
driver.close()
確保在等待后再次調用findElement()
,否則你可能無法獲得新的實例。 或者使用頁面工廠,每次訪問實例時都會為您獲取WebElement
的新副本。
嘗試逐頁刷新頁面以獲取更新的結果。
driver.navigate().refresh();
要在一段時間內刷新頁面,請參閱以下鏈接: -
希望它能幫到你:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.