所以這是我的問題。我撰寫了一個程式,它完全能夠在我加載的第一頁上獲得我想要的所有資訊。但是,當我單擊該nextPage按鈕時,它會運行一個腳本來加載下一批產品,而無需實際移動到另一個頁面。
因此,當我運行下一個回圈時,所發生的一切就是我得到與第一個回圈相同的內容,即使我正在模擬的瀏覽器本身的內容不同。
這是我運行的代碼:
from selenium import webdriver
from selenium.webdriver.common.by import By
from bs4 import BeautifulSoup
import time
driver.get("https://www.my-website.com/search/results-34y1i")
soup = BeautifulSoup(driver.page_source, 'html.parser')
time.sleep(2)
# /////////// code to find total number of pages
currentPage = 0
button_NextPage = driver.find_element(By.ID, 'nextButton')
while currentPage != totalPages:
# ///////// code to find the products
currentPage = 1
button_NextPage = driver.find_element(By.ID, 'nextButton')
button_NextPage.click()
time.sleep(5)
我有什么辦法可以準確地抓取瀏覽器上加載的內容嗎?
uj5u.com熱心網友回復:
問題似乎是因為您只是在獲取第 1 頁,如下一行所示:
driver.get("https://www.tcgplayer.com/search/magic/commander-streets-of-new-capenna?productLineName=magic&setName=commander-streets-of-new-capenna&page=1&view=grid")
但是正如您所看到的page,在 url 中呼叫了一個查詢引數,該引數確定您要獲取的 html 頁面。因此,您必須做的是每次回圈到新頁面時,您都必須通過更改page查詢引數來使用驅動程式獲取新的 html 內容。例如,在您的回圈中,它將是這樣的:
driver.get("https://www.tcgplayer.com/search/magic/commander-streets-of-new-capenna?productLineName=magic&setName=commander-streets-of-new-capenna&page={page}&view=grid".format(page = currentPage))
在您獲取新的 html 結構后,您將能夠根據需要訪問不同頁面中存在的新元素。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/497446.html
上一篇:CV=driver.find_element(By.XPATH('//*[@id="movie_player"]/div[5]/button'))TypeErr
