获取没有webbrowser的文件网址 - C#

时间:2015-12-02 22:53:51

标签: c# string dom

我试图获取图片的Url,目前我的代码确实有效但需要webBrowser这样做。

    public void getFileUrl(HtmlDocument htmlDocument)
    {
        HtmlElementCollection htmlCollectionImage = htmlDocument.Images;
        foreach (HtmlElement htmlImage in htmlCollectionImage)
        {
            string Url = htmlImage.GetAttribute("src");
            if (Url.StartsWith("http://www.exemple.com/"))
            {
                MessageBox.Show(Url);
            }
        }
    }

我需要和平的东西,不需要webBrowser,但我真的不知道如何做到这一点。

此外,我还需要提供一个简单的HtmlDocument htmlDocument,而不是string被提供给该方法。

任何替代方案?

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

static void Main()
{
    var fileUrls = GetFileUrl(@"https://stackoverflow.com/questions/34054662/get-a-file-url-without-webbrowser-c-sharp", @"https://www.gravatar.com/");

    foreach (string url in fileUrls)
    {
        Console.WriteLine(url);
    }

    Console.ReadKey();
}

public static IEnumerable<string> GetFileUrls(string url)
{
    var document = new HtmlWeb().Load(url);
    var urls = document.DocumentNode.Descendants("img")
                                    .Select(e => e.GetAttributeValue("src", null))
                                    .Where(s => s.ToLower().StartsWith(pattern));

    return urls;
}

改编自:How can I use HTML Agility Pack to retrieve all the images from a website?

编辑包含用法并向GetFileUrls()添加模式参数。