使用 Html Agility Pack 进行 HTML 抓取

发布于 2024-12-18 20:38:24 字数 584 浏览 1 评论 0原文

我有一个 HTML,其中包含以下代码,

<div id="image_src" style="display: block; "> 
<img id="captcha_img" src="" alt="image" onclick="imageClick(event)" style="cursor:crosshair;">

在此我如何使用 HTML Agility Pack 检测 src?

在另一个问题中,我尝试使用以下 LINQ,

var urls = document.DocumentNode.Descendants("img")
                            .Select(e => e.GetAttributeValue("src", null))
                            .Where(s => !String.IsNullOrEmpty(s));

但我在这里不断收到空指针异常...

我在整个 HTML 中只有一个图像标签,如上面所示

有人可以帮助我吗..

I have an HTML which contains the following code

<div id="image_src" style="display: block; "> 
<img id="captcha_img" src="" alt="image" onclick="imageClick(event)" style="cursor:crosshair;">

In this how can i detect the src using HTML Agility Pack ?

From another question I tried using the following LINQ

var urls = document.DocumentNode.Descendants("img")
                            .Select(e => e.GetAttributeValue("src", null))
                            .Where(s => !String.IsNullOrEmpty(s));

but i keep getting null pointer exception here ...

I have only one image tag in entire HTML given like above

Can somebody help me please ..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

孤者何惧 2024-12-25 20:38:25

使用 HTML 敏捷包

HtmlAgilityPack.HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);

string imgValue = doc.DocumentNode.SelectSingleNode("//img[@id = \"captcha_img\"]").GetAttributeValue("src", "0");

Using the HTML Agility Pack

HtmlAgilityPack.HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);

string imgValue = doc.DocumentNode.SelectSingleNode("//img[@id = \"captcha_img\"]").GetAttributeValue("src", "0");
明月松间行 2024-12-25 20:38:24

要解决空指针异常,请将每个 Linq 语句分成自己的行,如下所示:

 var img = document.DocumentNode.Descendants("img");
 var s = img.Select(e => e.GetAttributeValue("src", null));
 var w = s.Where(s => !String.IsNullOrEmpty(s));    

然后,使用调试器单步调试每一行,并查看它在何处抛出。

To troubleshoot the null pointer exception, break each Linq statement into its own line, like this:

 var img = document.DocumentNode.Descendants("img");
 var s = img.Select(e => e.GetAttributeValue("src", null));
 var w = s.Where(s => !String.IsNullOrEmpty(s));    

Then, step through each line with the debugger, and see where it throws.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文