我想解析用戶滾動時加載的網站的數據。有元素的有限數量的,可以同時滾動,但是使用出現此只給出了第一部分(25出的112):要求返回的部分頁面
url = "http://url/to/website"
response = requests.get(url)
soup = BeautifulSoup(response.text)
我怎麼能告訴request
返回HTML之前,「滾動」?
編輯:顯然要求不這樣做,我可以在Python中使用什麼樣的解決方案?
我想解析用戶滾動時加載的網站的數據。有元素的有限數量的,可以同時滾動,但是使用出現此只給出了第一部分(25出的112):要求返回的部分頁面
url = "http://url/to/website"
response = requests.get(url)
soup = BeautifulSoup(response.text)
我怎麼能告訴request
返回HTML之前,「滾動」?
編輯:顯然要求不這樣做,我可以在Python中使用什麼樣的解決方案?
你應該知道的唯一的事情就是如何serverlet作品。
通常,onScroll
或onClick
或任何其他事件將觸發AJAX request
到服務器。而客戶端JavaScript將呈現那些返回(JSON/XML ...)所以你應該做的唯一事情就是重複那些AJAX請求到同一臺服務器來獲取這些數據。
例如,在瀏覽器中的動作會象下面這樣:
1. Enter url on browser
> [HTTP GET REQUEST] http://url/to/website
2. Scroll on the page
> [AJAX GET] http://url/to/website/1
> [javascript on front-end will process those data]
3. Then, keeping scrolling on the page
> [AJAX GET] http://url/to/website/2
> [javascript on front-end will process those data]
4. ... (and so on)
問:如何使用Python來獲得這些數據?
答:一個簡單的方法是使用browser > inspect > network_tab
來查找您在該頁面上滾動時發送的AJAX請求。並用python重複那些帶有相應標題的AJAX請求。
你不能。這個問題是基於對請求做什麼的誤解。它僅加載頁面的內容。無盡的滾動是由Javascript支持的,這些請求不會做任何事情。
你會需要一些瀏覽器自動化工具,如硒要做到這一點;或者找出滾動JS正在使用的Ajax端點並直接加載。
謝謝你,我有點害怕這一點。我更新了我的問題以找到具體的解決方案 – CoMartel
你也許可以模仿,當你通過HTTP滾動會發生什麼要求 –