c#
  • html-agility-pack
  • 2017-01-17 8 views 0 likes 
    0

    Я работаю на несколько сотнях страниц Амазонки результатов поиска для некоторого анализа данных, а также с использованием ГАП для анализа из результатов:Ошибка анализа синтаксического анализа html?

    hap.DocumentNode.SelectNodes("//ul[@id='s-results-list-atf']/li") 
    

    Это возвращает только первые четыре Ли из списка результатов, хотя при более. Я проверил и дважды проверил, и я уверен, что это правильно - я делаю что-то очень не так? Я не понимаю, почему результаты ограничены просто 4. Типичным содержанием страницы может быть: https://www.amazon.com/s/?url=search-alias%3Daps&field-keywords=100+percent+barstow

    Использование других страниц результатов поиска дает ту же проблему и не дает результатов на странице, но всегда значительно меньше, чем там.

    +0

    Может быть, эта страница загружается по требованию, учитывая прокрутки, то ваш являются не получая весь результат. – Fals

    +0

    @Fals Я тоже так думал, но проверял вывод html, что он разбирается, и все это есть. Если я изменил 'SelectNodes' на что-то более слабое, тогда будет захвачено 21 узел (каждый листинг на странице). – user3791372

    +0

    Просто попробуйте другой селектор, например идентификатор, содержащий результат_. – Fals

    ответ

    1

    Дайте это попробовать:

    hap.DocumentNode.SelectNodes("//div[contains(@id,'tfResults')]//li[contains(@class,'s-result-item')]"); 
    

    Нет гарантии для других страниц, хотя, потому что я только опираясь на ссылку вы дали

    +1

    +1, потому что я узнал, что вы можете использовать содержит, чтобы захватить часть значений (например, atfResults/btfResults), было бы уловлено выше, что необходимо! благодаря – user3791372

    Смежные вопросы