![](/img/trans.png)
[英]How to stop the selenium webdriver after reaching the last page while scraping the website?
[英]After using Selenium to load the whole page, my code stop scraping after the first 100 items?
我想在我的個人 IMDb 觀看列表中獲取所有電影/系列的列表。 我正在使用 selenium 單擊加載更多按鈕,以便所有內容都顯示在 html 代碼中。 但是,當我嘗試抓取該數據時,只會顯示前 100 部電影。 'page3' 之后的任何內容都不會顯示。
下圖顯示了 html 中表示第 3 頁的部分:
單擊帶有 selenium 的加載按鈕后,所有電影都會顯示在 chrome 彈出窗口中。 但是,只有前 100/138 被打印到我的控制台。
這是 URL: https://www.imdb.com/user/ur130279232/watchlist
這是我當前的代碼:
URL = "https://www.imdb.com/user/ur130279232/watchlist"
driver = webdriver.Chrome()
wait = WebDriverWait(driver,20)
driver.get(URL)
while True:
try:
watchlist = driver.find_element_by_xpath("//div[@class='lister-list mode-detail']")
watchlistHTML = watchlist.get_attribute('innerHTML')
loadMoreButton = driver.find_element_by_xpath("//button[@class='load-more']")
soup = BeautifulSoup(watchlistHTML, 'html.parser')
content = soup.find_all('h3', class_ ='lister-item-header')
#pdb.set_trace()
print('length: ',len(content))
for elem in content:
print(elem.find('a').contents[0])
time.sleep(2)
loadMoreButton.click()
time.sleep(5)
except Exception as e:
print(e)
break
即使在單擊加載更多按鈕后,“lister-list mode-detail”仍包含音樂之聲之前的所有內容?
如果您可以訪問 HTTP GET,@balderman 提到的內容將起作用。
最主要的是標題的加載有延遲,並且在加載較早的標題之前不會加載較晚的標題。 我不知道它們是否只在您位於正確的區域時才加載,但是繞過它的一種笨拙的方法是以編程方式滾動頁面並讓它加載。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.