下载页面之前的C#HtmlAgilityPack超时

时间:2019-01-10 04:33:45

标签: c# html-agility-pack

我想使用htmlagilitypack在C#上解析网站https://russiarunning.com/events?d=run 我正在尝试这个

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

但是我遇到了一个问题-网站内容加载超时〜1000ms 因此,当使用web.Load(url)时,我下载的页面没有内容。

如何使用htmlagilitypack在下载页面之前进行超时?

2 个答案:

答案 0 :(得分:0)

尝试一下...

创建一个如下所示的类:

DWORD dwNoChild = 1;
BOOL bResult = ::SetProcessMitigationPolicy((PROCESS_MITIGATION_POLICY)13 /*ProcessChildProcessPolicy*/, 
    &dwNoChild, sizeof(dwNoChild));

并按以下方式使用:

ProcessChildProcessPolicy

答案 1 :(得分:0)

您可以简单地执行以下操作:

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