-1
我使用HtmlAgilityPack從網站獲取HTML,並且來自該網站的請求是由XMLHttpRequest和HTML加載在DIV中我無法獲得該HTML加載的外部請求我試過,但我無法得到htmlC#HtmlAgilityPack Html加載外部
HttpWebRequest getRequest = WebRequest.Create(Url) as HttpWebRequest;
//
getRequest.CookieContainer = cookieJar;
getRequest.Method = WebRequestMethods.Http.Post;
getRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:33.0) Gecko/20100101 Firefox/33.0";
getRequest.AllowWriteStreamBuffering = true;
getRequest.ProtocolVersion = HttpVersion.Version11;
getRequest.AllowAutoRedirect = true;
getRequest.ContentType = "application/x-www-form-urlencoded";
Stream newStream1 = getRequest.GetRequestStream();
newStream1.Close();
HttpWebResponse getRequestResponse = (HttpWebResponse)getRequest.GetResponse();
string source = "";
using (StreamReader sr = new StreamReader(getRequestResponse.GetResponseStream(), Encoding.Default))
{
source = sr.ReadToEnd();
//Console.WriteLine(source);
}
doc.LoadHtml(source);
getRequestResponse.Close();
究竟是什麼不工作? - 您是否期望它在給定頁面上執行JavaScript/AJAX請求?因爲'HtmlAgilityPack'沒有這樣做,它不是一個網頁瀏覽器,它只是解析你把它給DOM的HTML。 - 如果你想做屏幕抓取,我建議用'Selenium'來查看網絡瀏覽器自動化(它應該在Nuget上)。 - 嘗試使用Firefox或Chrome開始/調試,但是您應該能夠移動到PhantomJS無頭瀏覽器,以避免顯示UI /提高性能。 – BrainSlugs83 2016-10-12 22:56:12