我正在使用Html Agility Pack從網站獲取數據(報廢)
我的問題是從我提取數據的網站加載一些頁面加載幾秒後的內容。
所以每當我試圖從特定的Div中讀取特定數據時,它就會給我null。
但在var page
我只是沒有得到分區reviewBox
..因為它尚未加載。
public void FetchAllLinks(String Url)
{
Url = "http://www.tripadvisor.com/";
HtmlDocument page = new HtmlWeb().Load(Url);
var link_list= page.DocumentNode.SelectNodes("//div[@class='reviewBox']");
foreach (var link in link_list)
{
htmlpage.InnerHtml = link.InnerHtml;
}
}
那麼有人可以告訴我如何延遲這個請求
HtmlDocument page = new HtmlWeb().Load(Url);
將在page
varibale中加載完整數據
這不是延遲請求。該節點由javascript使用DOM填充,而Html Agility Pack是該要求的錯誤工具(它根本不是Web引擎,它只加載基本Html)。
當我需要獲得需要完整Web引擎解析的東西時,我通常使用WatiN 。它旨在幫助單元測試實際網頁,但這意味著它允許通過給定的瀏覽器引擎以編程方式訪問網頁,並將加載完整的文檔。它帶有開箱即用的IE或Firefox驅動程序,我模糊地回憶起Chrome也不難用。