XPath, извлеченный из Chrome, работает только для первого TR-элемента в .NET - PullRequest
0 голосов
/ 25 июня 2019

Может ли кто-нибудь помочь мне решить мою проблему в следующей ситуации:

Я пытаюсь получить 3. текст "Sangria Vinyl Lyrics" с этой веб-страницы:
http://www.metrolyrics.com/pharrell-williams-lyrics.html

Благодаря Google Chrome я нашел следующий XPath для его извлечения:
//*[@id='popular']/div/table/tbody/tr[3]/td[2]/a
Если я попытаюсь использовать этот XPath в аддоне, подобном XPath Helper , он будет работать для каждого элемента, который япоиск с помощью tr[1...to...65]

Если я скопирую и вставлю этот XPath в мой код .NET и установлю HtmlAgilityPack, я получу только «ничего».Странно, что модифицированный XPath (/tr[1]) для получения текста 1. («Счастливые слова») - единственный, с которым я отлично работаю, возвращая «Счастливые слова».

Есть ли что-то особенное в XPath, индексы элементов и HtmlAgilityPack в .NET?

Мой код пока:

Dim doc As HtmlDocument = New HtmlWeb().Load("http://www.metrolyrics.com/pharell-williams-lyrics.html")
Dim div As HtmlNode = doc.DocumentNode.SelectSingleNode("//*[@id='popular']/div/table/tbody/tr[3]/td[2]/a")

Я пробовал его даже с «полным путем XPath», как

(/html[1]/body[1]/div[2]/div[3]/div[3]/div[2]/div[1]/div[3]/div[1]/div[1]/div[2]/div[1]/div[1]/table[1]/tbody[1]/tr[3]/td[2]/a)

но с тем же результатом.Работает в Аддоне, но не в .NET

Есть идеи, что я делаю не так?

...