在HTMLAgailityPack中,如何從網站獲取未進入其innerhtml方法的數據。例如,如果在下面的鏈接:使用HTMLAgilityPack刮擦數據
https://www.theice.com/productguide/ProductSpec.shtml?specId=1496#expiry
表開始符號合同中未innerhtmltext到來。請讓我知道如何通過HTMLAgailityPack獲取此表數據?
問候
在HTMLAgailityPack中,如何從網站獲取未進入其innerhtml方法的數據。例如,如果在下面的鏈接:使用HTMLAgilityPack刮擦數據
https://www.theice.com/productguide/ProductSpec.shtml?specId=1496#expiry
表開始符號合同中未innerhtmltext到來。請讓我知道如何通過HTMLAgailityPack獲取此表數據?
問候
您需要發送一個GET請求到https://www.theice.com/productguide/ProductSpec.shtml?expiryDates=&specId=1496&_=1342907196619
內容正在通過JavaScript動態加載。也許你可以解析innerhtmltext,看看javascript將發送GET請求的鏈接到
如果它不是'進入innerhtml',這意味着它將被腳本放在那裏。我無法自己查看此頁面,所以我不確定。
如果它來自一個腳本,你不能很容易地得到它。你可以玩javascript,也可以讀取數據。
基本上在你的瀏覽器上安裝Firebug,看看正在進行的數據傳輸。有時候你很幸運,有時候你沒有。
或者你可以採取簡單的方法,並使用winforms WebBrowser控件,加載它,讓它運行腳本,然後從那裏刮。請注意,這會泄漏內存和GDI處理像瘋了似的。
好吧,我試着用Windows窗體,該程序工作正常,窗口XP和32位機器,但在Windows 7與64機器人,它返回系統.__ ComObject的網頁中的所有元素,使我可以解析所需元素的數據。 – 2012-07-21 22:07:49
Pleae使用XPath來獲取表你想//*[@id="right"]/div/table
例如
HtmlNode node = doc.DocumentNode.SelectSingleNode("//*[@id="right"]/div/table"));
string html = node.InnerHtml;
可否請您詳細說明一下,如何通過代碼especialy向網站發送獲取請求,同時解析HTMLDocument呢? – 2012-07-21 22:15:35