gpt4 book ai didi

c# - 您如何解析图像标签的 HTML 字符串以获取 SRC 信息?

转载 作者:IT王子 更新时间:2023-10-29 04:20:28 25 4
gpt4 key购买 nike

目前我使用 .Net WebBrowser.Document.Images() 来执行此操作。它需要 Webbrowser 来加载文档。很乱,很占资源。

根据 this question XPath 在这方面优于正则表达式。

有人知道如何在 C# 中执行此操作吗?

最佳答案

如果您的输入字符串是有效的 XHTML,您可以将其视为 xml,将其加载到 xmldocument 中,然后执行 XPath 魔术 :) 但情况并非总是如此。

否则你可以试试这个函数,它会从 HtmlSource 返回所有图片链接:

public List<Uri> FetchLinksFromSource(string htmlSource)
{
List<Uri> links = new List<Uri>();
string regexImgSrc = @"<img[^>]*?src\s*=\s*[""']?([^'"" >]+?)[ '""][^>]*?>";
MatchCollection matchesImgSrc = Regex.Matches(htmlSource, regexImgSrc, RegexOptions.IgnoreCase | RegexOptions.Singleline);
foreach (Match m in matchesImgSrc)
{
string href = m.Groups[1].Value;
links.Add(new Uri(href));
}
return links;
}

你可以像这样使用它:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.example.com");
request.Credentials = System.Net.CredentialCache.DefaultCredentials;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
using(StreamReader sr = new StreamReader(response.GetResponseStream()))
{
List<Uri> links = FetchLinksFromSource(sr.ReadToEnd());
}
}

关于c# - 您如何解析图像标签的 HTML 字符串以获取 SRC 信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/138839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com