Уведомления

Группа в Telegram: @pythonsu

#1 Май 24, 2022 15:43:14

Temp
Зарегистрирован: 2021-01-16
Сообщения: 75
Репутация: +  1  -
Профиль   Отправить e-mail  

Парсинг, requests и xhr

Доброго времени суток!

Задача следующая: изъятие инфы из определенной веб страницы

Пользуюсь библиотекой requests.

Насколько я понял, эта библиотека собирает не всю инфу и заставить get подождать, пока страница прогрузится полностью нельзя. Но вроде как можно обращаться напрямую к какому-то конкретному подгружаемому элементу. В моём случае наименование элемента мне известно формата xhr

Прошу подсказать, как именно к нему обращаться

Так же прошу не рекламировать selenium в комментариях… ну только если через requests эту процедуру нельзя выполнить вообще никакими способами, включая жертвоприношения.

Спасибо за уделённое время.

Офлайн

#2 Май 24, 2022 17:09:48

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Парсинг, requests и xhr

Насколько я понял, эта библиотека собирает не всю инфу и заставить get подождать, пока страница прогрузится полностью нельзя.

что за глупости? Вы же html парсите, как вы себе представляете разбор частично загруженной страницы, без закрывающих тегов? Страница после загрузки применяет скрипты, скрипты могут аяксом подтянуть какую угодно информацию и полностью преобразить изначально загруженную страницу. requests этого не делает, не запускает скрипты, он просто получает страницу

Temp
Так же прошу не рекламировать selenium в комментариях
сейчас каждый второй сайт построен на реакте, забудьте про то, что вы можете парсить интернет без какого-нибудь полноценного js движка, прошли эти времена уже давно



Офлайн

#3 Май 24, 2022 17:16:51

Temp
Зарегистрирован: 2021-01-16
Сообщения: 75
Репутация: +  1  -
Профиль   Отправить e-mail  

Парсинг, requests и xhr

FishHook
Понятно, спасибо за прямолинейный ответ.

Посоветуй пожалуйста js движок попроще, мне лишь нужно скомуниздить с сайта пару кусочков текста.

Офлайн

#4 Май 24, 2022 17:24:34

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Парсинг, requests и xhr

Temp
Понятно, спасибо за прямолинейный ответ.

Посоветуй пожалуйста js движок попроще, мне лишь нужно скомуниздить с сайта пару кусочков текста.

я персонально ничего посоветовать не смогу потому что парсингом сайстов не занимаюсь, вот вообще не занимаюсь, поэтому я не знаю



Офлайн

#5 Май 24, 2022 17:51:31

robisho
Зарегистрирован: 2020-10-19
Сообщения: 60
Репутация: +  2  -
Профиль   Отправить e-mail  

Парсинг, requests и xhr

с js работать могут selenium, requests-html, pypeteer
и, чтобы два раза не вставать, судя по скрину, вы не туда смотрите в devtools. для парсинга страницы нужно смотреть вкладку Элементы, а не Сеть.

Отредактировано robisho (Май 24, 2022 17:54:49)

Офлайн

#6 Май 24, 2022 22:17:28

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9873
Репутация: +  853  -
Профиль   Отправить e-mail  

Парсинг, requests и xhr

Temp
В моём случае наименование элемента мне известно формата xhr
Temp
Прошу подсказать, как именно к нему обращаться
XHR работает по протоколу HTTP. Представь, что это такой микробраузер в браузере. Соответственно, тебе нужно получить адрес ресурса и набор заголовков HTTP, а потом сформировать такой же запрос. Обычно это всё можно взять из исходного кода страницы и просмотра вкладки самого запроса через встроенные “инструменты разработчика” в браузере. В исходном коде страницы можно узнать, как составляется адрес ресурса. А в “инструментах разработчика” можно узнать, какие HTTP-заголовки посылаются при обращению к этому ресурсу.



Отредактировано py.user.next (Май 25, 2022 06:04:38)

Офлайн

#7 Май 29, 2022 02:03:01

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 325
Репутация: +  13  -
Профиль   Отправить e-mail  

Парсинг, requests и xhr

Temp
Доброго времени суток!Задача следующая: изъятие инфы из определенной веб страницыПользуюсь библиотекой requests.Насколько я понял, эта библиотека собирает не всю инфу и заставить get подождать, пока страница прогрузится полностью нельзя. Но вроде как можно обращаться напрямую к какому-то конкретному подгружаемому элементу. В моём случае наименование элемента мне известно формата xhrПрошу подсказать, как именно к нему обращатьсяТак же прошу не рекламировать selenium в комментариях… ну только если через requests эту процедуру нельзя выполнить вообще никакими способами, включая жертвоприношения.Спасибо за уделённое время.
Невозможно. Если хоть что-то подгружается на странице через js фиг ты че этим модулем спрасишь



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Офлайн

#8 Май 30, 2022 18:59:55

Temp
Зарегистрирован: 2021-01-16
Сообщения: 75
Репутация: +  1  -
Профиль   Отправить e-mail  

Парсинг, requests и xhr

py.user.next
XHR работает по протоколу HTTP. Представь, что это такой микробраузер в браузере. Соответственно, тебе нужно получить адрес ресурса и набор заголовков HTTP, а потом сформировать такой же запрос. Обычно это всё можно взять из исходного кода страницы и просмотра вкладки самого запроса через встроенные “инструменты разработчика” в браузере. В исходном коде страницы можно узнать, как составляется адрес ресурса. А в “инструментах разработчика” можно узнать, какие HTTP-заголовки посылаются при обращению к этому ресурсу.

Спасибо, решение найдено, без использования сторонних библиотек. Сайт postman.co помог подобрать необходимые заголовки.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version