簡體   English   中英

使用python閱讀動態生成的網頁

[英]Reading dynamically generated web pages using python

我正在嘗試使用python和漂亮的湯抓取一個網站。 我遇到了一些站點,盡管在瀏覽器中看到的圖像鏈接在源代碼中看不到。 但是,在使用Chrome Inspect或Fiddler時,我們可以看到相應的代碼。 我在源代碼中看到的是:

<div id="cntnt"></div>

但是在Chrome Inspect上,我可以看到在此div類中生成了一大堆HTML \\ CSS代碼。 有沒有辦法在python中也加載生成的內容? 我在python中使用常規的urllib,我可以獲取源代碼,但沒有生成的部分。

我不是網絡開發人員,因此無法以更好的方式表達行為。 請隨時澄清我的問題是否含糊不清!

網站的內容可能是在通過javascript加載后生成的,為了通過python獲取生成的腳本,請參考此答案

常規的抓取工具僅獲取HTML文檔。 要獲取由JavaScript邏輯生成的任何內容,您需要一個無頭瀏覽器 ,該瀏覽器還可以生成DOM,像常規瀏覽器一樣加載和運行腳本。 Wikipedia文章和網絡上的其他一些頁面都列出了這些內容及其功能。

選擇這些產品的某些先前主要產品時,請記住現在已廢棄。

首先嘗試!

從技術上講,數據可能在javascript本身中,並且需要所有這些javascript引擎業務。 (這里有一些很棒的鏈接!)

但是根據經驗,我的第一個猜測是JS是通過ajax請求提取數據的。 如果您可以讓您的程序模擬這一點,那么您可能將不需要的任何繁瑣的解析/執行/抓取工作就可以直接交給您!

不過,這將需要一些偵探工作。 建議您打開網絡流量記錄器(例如Firefox中的“ Web Developer Toolbar”),然后訪問該站點。 將注意力集中在任何/所有XmlHTTPRequest上。 您所需的數據應該在這些響應之一中的某個位置,可能在某些JSON文本的中間。

現在,查看是否可以重新創建該請求並直接獲取數據。 (注意:您可能必須設置請求的用戶代理,以便服務器認為您是“真正的” Web瀏覽器。)

暫無
暫無

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

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