簡體   English   中英

C# HtmlAgilityPack 下載頁面前超時

[英]C# HtmlAgilityPack timeout before download page

我想用 htmlagilitypack 在 C# 上解析站點https://russiarunning.com/events?d=run我正在嘗試這個 make

string url = "https://russiarunning.com/events?d=run";
var web = new HtmlWeb();
var doc = web.Load(url);

但是我遇到了一個問題 - 網站上的內容加載超時約 1000 毫秒,因此,當使用 web.Load (url) 時,我下載了沒有內容的頁面。

如何使用 htmlagilitypack 在下載頁面之前超時?

你可以簡單地這樣做:

string url = "https://russiarunning.com/events?d=run";
var web = new HtmlWeb();
web.PreRequest = delegate(HttpWebRequest webReq)
{
 webReq.Timeout = 4000; // number of milliseconds
 return true;
};

var doc = web.Load(url);

更多關於超時屬性: https : //docs.microsoft.com/en-us/dotnet/api/system.net.httpwebrequest.timeout?view=netframework-4.7.2

嘗試這個...

創建一個類,如下所示:

public class WebClientHelper : WebClient
{
    protected override WebRequest GetWebRequest(Uri address)
    {
        HttpWebRequest request = base.GetWebRequest(address) as HttpWebRequest;
        request.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;
        return request;
    }
}

並使用如下:

  var data = new Helpers.WebClientHelper().DownloadString(Url);
  var htmlDocument = new HtmlDocument();
  htmlDocument.LoadHtml(data);

暫無
暫無

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

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