Delphi取Ajax網頁內容

2022-05-09 01:33:08 字數 687 閱讀 1646

在程式中使用twebbrowser控制項或者indy中控制項連線採用ajax技術的網頁,獲得的網頁原始碼中並不會有客戶端更新的內容。在ie瀏覽器中的檢視原始檔同理也是看不到ajax更新的內容。通過外掛程式可以看到ajax更新後的內容。問題是在程式中怎樣來獲得完整的網頁內容?

如果有ajax更新,webbrowser的documentcomplete事件也不會被觸發。

其實完整的網頁內容並不是不可以獲得,使用乙個簡單的方法就可以:

function gethtml(const webbrowser:twebbrowser): string;

vardoc: ihtmldocument2;

begin

doc := webbrowser.document as ihtmldocument2;

if assigned(doc) and assigned(doc.body) then

result := doc.body.outerhtml; //也可以用innerhtml取得其html文字

end;

這樣獲得的html內容中就包含了ajax更新的內容。

現在關鍵是沒有好的辦法來判斷ajax是否已更新完畢,由於採用的是非同步更新,所以在判斷上比較困難。上網搜尋了一下,國外好像有比較複雜解決方案的,也沒有研究過究竟可行否。

做過網頁內容採集軟體的,不知道有沒有好的辦法來處理,歡迎指教。  :-)

Delphi取Ajax網頁內容

在程式中使用twebbrowser控制項或者indy中控制項連線採用ajax技術的網頁,獲得的網頁原始碼中並不會有客戶端更新的內容。在ie瀏覽器中的檢視原始檔同理也是看不到ajax更新的內容。通過外掛程式可以看到ajax更新後的內容。問題是在程式中怎樣來獲得完整的網頁內容?如果有ajax更新,web...

Python爬取網頁內容

其時序圖如圖所示。給定乙個要訪問的url,獲取這個html及內容,遍歷html中的某一類鏈結,如a標籤的href屬性,從這些鏈結中繼續訪問相應的html頁面,然後獲取這些html的固定標籤的內容,如果需要多個標籤內容,可以通過字串拼接,最後通過正規表示式刪除所有的標籤,最後將其中的內容寫入.txt檔...

python lxml爬取網頁內容

from lxml import etree import requests url response requests.get url text response.text html etree.html text 先獲取到這個頁面的html,對了,這裡還用到了xpath來選擇節點,具體用法請參考...