Как прокручивать страницу, чтобы она прогружалась для парсинга ссылок?

kabangig

Новичок
Регистрация
14.03.2018
Сообщения
26
Благодарностей
0
Баллы
1
Все привет и такой вопрос.
Вот например беру DOM страницы с результатами поиска на youtube. И с регулярным выражением сохраняю ссылки себе в файл.
НО прогружается только 20 или 30 видео. Соответсвенно сохраняются тоже, только эти прогруженные видео.
Как страницу целиком прогрузить, чтобы спарсить все ссылки? Промотать или как подругому. Как это делается?
 

Dexio

Client
Регистрация
09.05.2014
Сообщения
1 254
Благодарностей
220
Баллы
63
Все привет и такой вопрос.
Вот например беру DOM страницы с результатами поиска на youtube. И с регулярным выражением сохраняю ссылки себе в файл.
НО прогружается только 20 или 30 видео. Соответсвенно сохраняются тоже, только эти прогруженные видео.
Как страницу целиком прогрузить, чтобы спарсить все ссылки? Промотать или как подругому. Как это делается?
Один из самых простых вариантов- проскролить вниз. Можно например эмуляцией клавиатуры
 

takerz

Client
Регистрация
02.07.2016
Сообщения
179
Благодарностей
23
Баллы
18
Все привет и такой вопрос.
Вот например беру DOM страницы с результатами поиска на youtube. И с регулярным выражением сохраняю ссылки себе в файл.
НО прогружается только 20 или 30 видео. Соответсвенно сохраняются тоже, только эти прогруженные видео.
Как страницу целиком прогрузить, чтобы спарсить все ссылки? Промотать или как подругому. Как это делается?
С помощью экшена "эмуляция клавиатуры": {END}
Второй вариант перемещаться к любому элементу в футере
 

Nixens

Client
Регистрация
18.02.2018
Сообщения
288
Благодарностей
7
Баллы
18
Также еще можно эмуляцией клавиатуры просто командой {DOWN}
 

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 763
Благодарностей
1 391
Баллы
113
далеко не на всех сайтах {END} прогрузит всю страницу ... подгрузит еще часть и все
нужно найти тэг в который идет подгрузка контента при нажатии на {END} ... перед и после нажатия нужно получать высоту тега и смотреть изменилась ли она ... если изменилась, то снова жать {END}, если нет, то значит всю страницу проскролили
 

takerz

Client
Регистрация
02.07.2016
Сообщения
179
Благодарностей
23
Баллы
18
Кстати в идеале нужно найти элемент в коде по нажатию на который подгружается страница дальше. В Вк например такой элемент есть
 

Dexio

Client
Регистрация
09.05.2014
Сообщения
1 254
Благодарностей
220
Баллы
63
далеко не на всех сайтах {END} прогрузит всю страницу ... подгрузит еще часть и все
нужно найти тэг в который идет подгрузка контента при нажатии на {END} ... перед и после нажатия нужно получать высоту тега и смотреть изменилась ли она ... если изменилась, то снова жать {END}, если нет, то значит всю страницу проскролили
Оригинальное решение!! а нет примера случаем в загажнике? Я так мучался с аяксовым немецким сайтом..
 

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 763
Благодарностей
1 391
Баллы
113
Примера под рукой нет, но там и сложного ничего нет. Главное определить в какой html тег (контейнер) происходит подгрузка новых данных при скроллинге ... обычно легко находится в файрбаге. А дальше находите этот тег в конструкторе действий, выбираете аттрибут height (высота) и выбираете GET для получения значения ... получаете до и после эмуляции квлавиатуры с {END} и сравниваете
 

kabangig

Новичок
Регистрация
14.03.2018
Сообщения
26
Благодарностей
0
Баллы
1
всем спасибо за советы

на youtube получилось следующим образом
-получил высоту div'a с результатами поиска
-в цикле пожал {DOWN} 100 раз
-получил высоту еще раз и сравнил с предыдущим значением и если она стала больше возращаюсь в цикл и кручу вниз дальше, а
если высота не изменилась значит мы в конце страницы
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)