0

Я пытаюсь очистить отзывы с сайта TripAdvisor. Поскольку большинство изображений на веб-сайте загружаются динамически, я использую функцию рендеринга javascript Splash для генерации страниц.Сканирование динамических загружаемых изображений с TripAdvisor

Проблема заключается в загрузке некоторых изображений, а некоторые нет.

Вот URL обзора я хочу ползать: https://www.tripadvisor.com.sg/ShowUserReviews-g294265-d1770798-r446535418-Marina_Bay_Sands-Singapore.html

Я попытался установить Всплеск время ожидания до 10 секунд (максимум), а результат все тот же.

Вот мой код, который был использован в Splash:

function main(splash) 
    local url = splash.args.url 
    assert(splash:go(url)) 
    assert(splash:wait(10)) 
    splash:set_viewport_full() 
    return { 
    html = splash:html(), 
    png = splash:png(), 
    har = splash:har(), 
    } 
end 

И вот результат изображение, которое генерируется Всплеск (Croped из колонтитула раздел): Click to view the image

Как вы можете видеть, все остальное загружались изображения с динамической загрузкой, за исключением изображений в обзоре (они должны быть в красном прямоугольнике). Я проверил html и обнаружил, что теги img существуют, но их атрибут src был «.../x.gif», который представляет собой одно пиксельное изображение вместо URL-адреса для реальных изображений.

Есть ли у кого-нибудь проблемы, подобные этому, или есть идея, почему это было?

ответ

0

Изображения, кажется, загружаются при прокрутке к ним. Однако, когда я попытался использовать Splash для прокрутки к ним, я не смог заставить его отображать изображения, несмотря на установку задержки.

Если вы посмотрите на тело ответа, вы заметите, что изображения содержатся в массиве JavaScript с именем lazyImgs, и каждое изображение имеет идентификатор. Вы можете прочитать каждый идентификатор из элементов-заполнителей при просмотре отзывов и использовать их для извлечения изображений из массива JavaScript. Это, скорее всего, самое простое решение.

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

  • Нет связанных вопросов^_^