Парсинг контента под lazy load

timoxa949

Client
Регистрация
16.11.2018
Сообщения
158
Благодарностей
27
Баллы
28
Всем привет, имеется сайт мне с него нужно спарсить ссылки на внутренние страницы, дело в том что в начале сайт выдает только 11 ссылок, остальные появляются после прокрутки страницы вниз, то есть подгружается как lazy load. Обычно паршу сайты только запросами, теперь думаю придется включать браузер чтобы делать прокрутку или есть способы спарсить запросами? Если есть наводки, ткните в правильную сторону. Спасибо.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
смотришь какой запрос подгружает, реализуешь этот запрос
 
  • Спасибо
Реакции: timoxa949

timoxa949

Client
Регистрация
16.11.2018
Сообщения
158
Благодарностей
27
Баллы
28
смотришь какой запрос подгружает, реализуешь этот запрос
В get запросе заметил два параметра которые отправляются при загрузке новых ссылок.
1. ?offset=0 он увеличивается каждый раз на 12 при каждой новой дозагрузке (с этим понятно, я могу его увеличивать и отправлять запрос)
2. &t=1598821654944 - какой то рандомный параметр, который каждый раз добавляется в конце ссылки get запроса, с ним у меня проблемы. Из за него не могу норм парсить, как это обойти? Если убрать этот параметр из запроса, то парсятся одни и те же ссылки в первой загрузке.
 
Регистрация
05.06.2019
Сообщения
570
Благодарностей
454
Баллы
63
В get запросе заметил два параметра которые отправляются при загрузке новых ссылок.
1. ?offset=0 он увеличивается каждый раз на 12 при каждой новой дозагрузке (с этим понятно, я могу его увеличивать и отправлять запрос)
2. &t=1598821654944 - какой то рандомный параметр, который каждый раз добавляется в конце ссылки get запроса, с ним у меня проблемы. Из за него не могу норм парсить, как это обойти? Если убрать этот параметр из запроса, то парсятся одни и те же ссылки в первой загрузке.
2. unixtime, то есть точное время, когда был запрос
 

timoxa949

Client
Регистрация
16.11.2018
Сообщения
158
Благодарностей
27
Баллы
28
2. unixtime, то есть точное время, когда был запрос
Подставил в &t={-TimeNow.UnixTime-}
Заметил что {-TimeNow.UnixTime-} выдает значение с плавающей точкой, а нужно без.

пробовал способ обрезать цифры после точки, сниппетом:

C#:
int unixTime = (int)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
return unixTime;
и сохранением результата в переменную и дальнейшую подставку в запрос. Все равно не помогает. Думаю, так как пока все эти телодвижения делаются unixtime уже по идее ушел в перед. Уткнулся в стену, хелп.

что делать то?

UPD: Заметил такую особенность, что сайт который я паршу unixtime в запросе выдает как 13 цифр:

62631


сниппет выше которым пользовался, выдает unixtime в 10 цифрах, если без точки. Может ли это как то влиять?

Отсюда следует новый вопрос, как конвертировать 10 числовой unixtime в 13 числовой?
 
Последнее редактирование:

timoxa949

Client
Регистрация
16.11.2018
Сообщения
158
Благодарностей
27
Баллы
28
Подставил в &t={-TimeNow.UnixTime-}
Заметил что {-TimeNow.UnixTime-} выдает значение с плавающей точкой, а нужно без.

пробовал способ обрезать цифры после точки, сниппетом:

C#:
int unixTime = (int)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
return unixTime;
и сохранением результата в переменную и дальнейшую подставку в запрос. Все равно не помогает. Думаю, так как пока все эти телодвижения делаются unixtime уже по идее ушел в перед. Уткнулся в стену, хелп.

что делать то?

UPD: Заметил такую особенность, что сайт который я паршу unixtime в запросе выдает как 13 цифр:

Посмотреть вложение 62631

сниппет выше которым пользовался, выдает unixtime в 10 цифрах, если без точки. Может ли это как то влиять?

Отсюда следует новый вопрос, как конвертировать 10 числовой unixtime в 13 числовой?
РЕШЕНО!

Добавил выводу со сниппета c# к unixtime {-TimeNow.Millisecond-}

То есть, конец ссылки выглядит теперь так: &t={-Variable.unixtime-}{-Variable.miliseconds-}
 
  • Спасибо
Реакции: A007

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
РЕШЕНО!

Добавил выводу со сниппета c# к unixtime {-TimeNow.Millisecond-}

То есть, конец ссылки выглядит теперь так: &t={-Variable.unixtime-}{-Variable.miliseconds-}
в сниппете TotalSeconds замени на TotalMilliseconds
И, наверно, int нужно заменить на long
 

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