У меня возникли проблемы с извлечением некоторых атрибутов из html-страницы и вам нужны некоторые идеи, которые помогут мне отклеить.Использование xpath для анализа атрибутов html с веб-страницы
Я использую PowerShell и использую команду htmlagilitypack, чтобы помочь мне разобрать html. У меня очень грубая версия, которую я мог делать с регулярным выражением, но она не всегда работает, поэтому я решил, что лучшим вариантом будет использование xpath для анализа результатов. Если регулярное выражение - это путь, пожалуйста, дайте мне знать.
До сих пор я мог захватить интересующую меня страницу и разделить ее по рядам.
$results = $htmldoc.DocumentNode.SelectNodes("//p[@class='row']")
После страница разделена я пытаюсь перебирать каждую строку, используя XPath, чтобы захватить информацию я заинтересован в.
ForEach ($item in $results) {
$ID=$null
$ID = $item.OuterHtml
}
Это заставляет меня близко к тому, что я хотел, но это захватывает кучу другой информации, которую я тоже не хочу. Вот что выглядит $ item.outerhml.
OuterHtml : <p class="row" data-latitude="41.5937565437255" data-longitude="-93.6437636649079" data-pid="4184719674"> <a href="/mod/4184719674.html" class="i"></a>
<span class="star"></span> <span class="pl"> <span class="date">Nov 27</span> <a href="/mod/4184719674.html">iPhone and other Cell Phone Unlocks</a>
</span> <span class="l2"> <span class="pnr"> <small> (Des Moines)</small> <span class="px"> <span class="p"> <a href="#" class="maptag"
data-pid="4184719674">map</a></span></span> </span> <a class="gc" href="/mod/" data-cat="mod">cell phones - by dealer</a> </span> </p>
Мне просто нужен атрибут data-pid.
Я перепробовал кучу других способов для извлечения данных Pid атрибута, но не имел никакого успеха. Вот один такой метод, который я пробовал, но он продолжает возвращать одно и то же значение снова и снова.
$ID = $Date.DocumentNode.SelectSingleNode("//p/@data-pid")
У меня такое ощущение, что это что-то простое, но попало в блокпост. Дайте мне знать, какую другую информацию мне нужно разместить.
Вы должны более четко описать то, что Чтобы получить stuck_ означает. Вы получаете ошибку компиляции/синтаксиса? Получаете ли вы ошибку во время выполнения? Вы получаете пустой набор результатов? –
Я пытаюсь извлечь атрибут data-pid для каждой строки таблицы и хранить его в переменной, но у меня возникают проблемы с работой. Вышеприведенный код получит то, что мне нужно, но я хочу получить атрибут data-pid. – jmreicha