2
string imgurlhard = doc.DocumentNode. 
    Element("html"). 
    Element("body"). 
    Elements("div").Single(el => el.Attributes["id"].Value == "main"). 
    Elements("div").Single(el => el.Attributes["id"].Value == "onlineIntegrator"). 
    Elements("div").Single(el => el.Attributes["id"].Value == "results"). 
    Element("img").Attributes["src"].Value; 

MessageBox.Show(imgurlhard); 

А вот это адрес веб-страницы, чтобы получить:Извлечение изображения из URL веб-страницы

http://integrals.wolfram.com/index.jsp?expr=sin(x)&random=false 

Может кто-нибудь сказать мне, что я делаю неправильно, потому что я поймать NullReferenceException?

+0

Ответ прост и делает это самостоятельно - что именно строка кода (который вызывает) вызывает исключение? – abatishchev

+0

И как я могу проверить его? – user1138470

+0

Когда вы получаете исключение, Visual Studio выделит строку, вызывающую ее. Чтобы сделать это более понятным, разделите свой однострочный шрифт на отдельные вызовы (на строку). – abatishchev

ответ

1
var image = doc.DocumentNode 
    .Descendants("img") 
    .Where(i => i.Attributes["class"] != null && i.Attributes["class"].Value == "traditionalForm") 
    .Select(i => i.Attributes["src"].Value) 
    .FirstOrDefault(); 
0

Я бы предложил использовать HTMLagility.

string image = Doc.DocumentNode.SelectSingleNode("//div[@id='traditionalForm']//img['src'][1]").Attributes["src"].Value; 

Редактировать

Теперь он должен работать.

+0

Смотрите теги, OP уже использует HtmlAgilityPack –

+0

И ваш код вызывает исключение. Вы тестировали его перед публикацией? –