簡體   English   中英

使用BeautifulSoup並使用不變的網址來抓取網站

[英]Scraping website using BeautifulSoup with unchanging URL

我之前曾進行過網絡抓取,但在嘗試從RottenTomatoes / search抓取時遇到了一些我從未見過的問題。 問題是雙重的。 (我正在等待API請求“驗證”,不幸的是,爛番茄沒有所有電影的列表,嗯)

  1. 頁面右下角有一個“更多電影”鏈接,必須單擊該鏈接才能播放電影。 據我所知,Python沒有這樣的東西可以與之交互……或者是嗎?

在此處輸入圖片說明

  1. 即使單擊“更多電影”鏈接,當我嘗試瀏覽/迭代所有頁面時,頂部的URL也不會更改。 對於BeautifulSoup來說,這似乎是一個問題。

在此處輸入圖片說明

有什么建議/提示嗎?

實際上,使用beautifulsoup不可能直接做到這一點,因為beautifulsoup處理靜態網頁。 您要抓取的內容是通過JavaScript添加到頁面中的,而不是烘焙到HTML中的。

“更多電影”按鈕調用了一個javascript函數,該函數可能會針對更多電影進行一些AJAX函數調用。

在某些情況下,您可以輕松訪問“更多電影”:

  • 有時數據已經存在於源中,但是被隱藏了。 JavaScript使此可見
  • javascript使用api加載其內容,然后可以在源代碼中找到此API url,如果直接轉到該鏈接,則可以找到所需內容。

但是,上述似乎與輪狀番茄都不是一樣。 我快速瀏覽了一下,也許您應該對其進行更徹底的調查。

我過去使用的解決方案是: Selenium 它有一個易於使用的python庫,可讓您自動執行瀏覽器行為。 這樣,您可以在爬網時“自動”單擊“加載更多”按鈕。

但是請注意 ,這可能會很慢並且會浪費資源。 您可以無頭運行它,這使其無法打開瀏覽器並節省一些資源。

暫無
暫無

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

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