簡體   English   中英

Python Selenium:如何從頁面獲取新數據定期刷新?

[英]Python Selenium: How to get fresh data from the page get refreshed periodically?

我已經編寫了一個腳本,用URL打開Firefox,抓取數據並關閉。 該頁面屬於游戲站點,其中頁面通過Ajax刷新內容。

現在,一種方法是在打開的瀏覽器中獲取那些AJAX請求並在一段時間后獲取數據或刷新頁面。

對於后一種情況,我該怎么辦? 我應該在一段時間后調用該方法還是什么?

您可以實現所謂的smart wait

  1. 在頁面上指出最常更新和對您有用的Web元素
  2. 使用JavaScript從中獲取數據,因為如果沒有頁面刷新,DOM模型將不會更新,例如:

    driver.execute_script('document.getElementById("demo").innerHTML')

  3. 等待一段時間,再次獲取並與之前的結果進行比較。 如果更改 - 刷新頁面,獲取數據等。

您可以使用時間庫來執行此操作。 例如:

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();

要在一段時間內刷新頁面,請參閱以下鏈接: -

在用戶指定的時間內運行python腳本?

希望它能幫到你:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM