Скребок HTML с использованием Html Agility Pack

У меня есть HTML, который содержит следующий код

<div id="image_src"><code></code> <p> В этом как я могу определить src, используя HTML Agility Pack?</p>

 <p> Из другого вопроса я попытался использовать следующую LINQ</p> <pre class="prettyprint linenums">var urls = document.DocumentNode.Descendants("img")
 .Select(e => e.GetAttributeValue("src", null))
 .Where(s => !String.IsNullOrEmpty(s));

но я продолжаю получать исключение нулевого указателя здесь...

У меня есть только один тег изображения во всем HTML, как указано выше

Может кто-нибудь мне помочь.

2 ответа

Использование пакета гибкости HTML

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

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


Чтобы устранить исключение нулевого указателя, перерыв каждого оператора Linq в его собственную строку, например:

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

Затем пройдите через каждую строку с помощью отладчика и посмотрите, куда он кидается.

licensed under cc by-sa 3.0 with attribution.