Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何减少使用HtmlAlityPack加载HTML页面所需的时间?_C#_Html Agility Pack - Fatal编程技术网

C# 如何减少使用HtmlAlityPack加载HTML页面所需的时间?

C# 如何减少使用HtmlAlityPack加载HTML页面所需的时间?,c#,html-agility-pack,C#,Html Agility Pack,事实上,我在这样的项目中,我需要从谷歌搜索结果显示的所有网站的联系页面链接工作。我通过使用Load方法(HTMLweb)单独加载所有url来实现这一点。但是一个接一个地加载所有url,然后获取联系人页面地址需要花费大量时间 下面是我用来获取联系人页面URL的函数。 我将网站URL作为参数传递(由google搜索结果获取) 您的代码不完整,但我认为通过使获取并发(每个url一个线程),您将有更多的机会。IO是通过多线程获得巨大性能改进的完美环境。与论坛网站不同,我们不使用“感谢”或“感谢任何帮助”

事实上,我在这样的项目中,我需要从谷歌搜索结果显示的所有网站的联系页面链接工作。我通过使用Load方法(HTMLweb)单独加载所有url来实现这一点。但是一个接一个地加载所有url,然后获取联系人页面地址需要花费大量时间

下面是我用来获取联系人页面URL的函数。 我将网站URL作为参数传递(由google搜索结果获取)


您的代码不完整,但我认为通过使获取并发(每个url一个线程),您将有更多的机会。IO是通过多线程获得巨大性能改进的完美环境。

与论坛网站不同,我们不使用“感谢”或“感谢任何帮助”或签名。见”。
private string GetContactPageFromURL(Uri url)
{

     //HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();

    try
    {
        var getHtmlWeb = new HtmlWeb() { AutoDetectEncoding = false, OverrideEncoding = Encoding.GetEncoding("iso-8859-2"), };

        string str = getHtmlWeb.Load("http://" + url.Host).DocumentNode.SelectNodes("//a[contains(@href,'contact')]")[0].Attributes["href"].Value;
        if (!str.StartsWith("http://") && !str.StartsWith("https://"))
        {
            if (!str.Contains(url.Host))
            {
                if (!str.StartsWith("/"))
                    str = "/" + str;
                str = url.Host + str;
            }
            str = "http://" + str;
        }

        return str;