XPath в VB.NET с пакетом гибкости HTML

html-agility-pack vb.net xpath

Вопрос

У меня есть следующий код vb.net, который отлично работает, и в окне сообщения я вижу точное количество элементов, имеющих атрибут id.

Dim hreftext = htmldoc.DocumentNode.SelectNodes("//*[@id]")
 MsgBox(hreftext.Count)

теперь проблема в том, что я использую следующее в поле сообщения, которое оно дает мне. Ссылка на объект не установлена ​​в экземпляр объекта, хотя есть 6 элементов с идентификатором rso

Dim hreftext = htmldoc.DocumentNode.SelectNodes("//*[@id='rso']")
 MsgBox(hreftext.Count)

есть ли что-то не так со вторым фрагментом?

Принятый ответ

Прочитав еще один из ваших вопросов SO, кажется, вы пытаетесь очистить Google Shopping и не обратили внимания на загруженный источник html, а не на сгенерированный dom.

Идентификатор «rso» не отображается в источнике html, поэтому вы получаете ошибку. Google не заинтересован в том, чтобы быть соскобленным, и, конечно же, сделать это сложно.

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

TextBox1.Text = htmldoc.DocumentNode.OuterHtml

Довольно это не так !!


Популярные ответы

Для уточнения дела:

Пытаться:

Dim hreftext = htmldoc.DocumentNode.SelectNodes("//*[translate(@id,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')='rso']")
 MsgBox(hreftext.Count)

Чтобы захватить любой узел, который равен любой комбинации комбинаций «rso»,



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow