LINUX.ORG.RU

Python 3 и ajax запросы

 , ,


1

1

Привет, подскажите как и чем можно получить ссылку которая отображается в браузере (Например: Chrome) если выбрать исследование страницы и в разделе «XHR» - «HEADERS» и там «General» - «Request URL»

1. Request URL:
http://198.xx.xx.xx:xxxx/sport/tracks/index.m3u8?xxxxxx=xxxxxxxxx
2. Request Method:
GET
3. Status Code:
200 OK
4. Remote Address:
198.xx.xx.xx:xxxx
5. Referrer Policy:
no-referrer-when-downgrade

Какими средствами можно это получить ? Модуль Reguests не рендерит ajax запросы, насколько я понял.

Ответ на: комментарий от qshiroe

Вот я о нем и подумал, поначалу. Но потом понял что вообще не получается вывести заголовки ответов как к примеру это делается в REGUESTS. В selenium я еще не разобрался, возможно мой косяк. Читал о SCRAPY но не понял может он это или нет. Selenium это точно может?

Alecsandr1980 ()
Ответ на: комментарий от WitcherGeralt

Ответ на: комментарий от bvn13 15 апр. 2019 г., 18:55:38

Ты лингвист, гадалка или психотерапевт? Читая поток мыслей >таких товарищей, лучшее, что я могу сделать — ничего не >отвечать.
Наугад чтоли отвечаешь?

Странный вы человек. Если не хотите отвечать, зачем писали, следили за темой... А если я что-то непонятно написал, можно было и уточнить.

Alecsandr1980 ()
Ответ на: комментарий от WitcherGeralt

Раз так пошло, объясни что невнятно? Я как мог объяснил все в своем вопросе с примером вывода информации в браузере (Chrome).

В теме о парсинге ajax запросов я новичок. До этого, в предыдущих задачах мне хватало модулей reguests,bs,json все что нужно забирал с помощью них. Сейчас стало интересно разобраться как забирать ссылки созданные ajax которые отображаются при исследовании страницы в разделе «Сеть». Что невнятно?

url = scheme + host:port + path + searchQuery
ищи эти части, склеивай

bvn13, спасибо. Он все правильно написал.

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

Alecsandr1980 ()
Ответ на: комментарий от Alecsandr1980

Для начала, в природе не существует такой сущности как «ajax-запрос», это устаревший термин, которым обозначали обычные http-запросы из JavaScript (Asynchronous Javascript and XML), когда эта концепция была ещё вновинку. Т.е. «ajax-запрос» нельзя парсить и уж тем более «рендерить», особенно питоном. Ты имел ввиду просто форматированный вывод урла и заголовков?

Вот тебе ответ по первой же ссылке на запрос «python requests print request»:

import requests
import httplib

def patch_send():
    old_send= httplib.HTTPConnection.send
    def new_send( self, data ):
        print data
        return old_send(self, data) #return is not necessary, but never hurts, in case the library is changed
    httplib.HTTPConnection.send= new_send

patch_send()
requests.get("http://www.python.org")

Без обид, но это настолько невменяемо, что ты даже сам не понял чего хочешь и не смог погуглить.

WitcherGeralt ★★ ()
Последнее исправление: WitcherGeralt (всего исправлений: 1)
Ответ на: комментарий от WitcherGeralt

Спасибо, что ответили.

Для начала, в природе не существует такой сущности как «ajax-запрос»

Согласен, меня уже правили, но как назвать не знал поэтому выбрал это название (ajax). Прекрасно понимаю, что все это язык js (ajax это Javascript and XML). На сайте который я исследую уйма скриптов и jQwery и многое другое и кто конкретно с чем взаимодействует для меня загадка. Был контент в js который удалось прочитать используя модуль «base64». Сам «JS» знаю плохо (поверхностно, азы, без фреймворков и пр.), но планирую изучать.

Т.е. «ajax-запрос» нельзя парсить и уж тем более «рендерить», особенно питоном.

Пока изучаю питон, поэтому смотрю, что можно сделать на питоне. Слово «Рендер» и сочетании «рендер страницы» фигурируют в сети очень часть. Вбив в поиске «рендер страницы» можно увидеть в первой ссылке:

https://habr.com/ru/post/224187/
26 мая 2014 в 20:08
Рендеринг WEB-страницы: что об этом должен знать front-end разработчик

Интернет кишит этим, и я и другие начинающие это читаем. Поэтому так и пишем.

Ты имел ввиду просто форматированный вывод урла и заголовков?

Возможно это так называется, я не знаю этого. Но ссылки которые вижу в исследовании отсутствуют в html коде страницы. Открывал файлы скриптов исследуя, но тоже в чистом виде не увидел (защита от таких как я и пр.). А логику понять пока не могу. Не знаю много еще чего.

Вот тебе ответ по первой же ссылке на запрос «python requests print request»:

Спасибо за ссылку! Но этот код для python2, а я писал в заголовке что мне нужно решение для python3. В python3 данная библиотека httplib переименована " You are running Python 2 code on Python 3. In Python 3, the module has been renamed to http.client". В любом случае огромное спасибо буду пробовать.

Без обид, но это настолько невменяемо, что ты даже сам не понял чего хочешь и не смог погуглить.

На вас обиды нет, жаль что думаете, что не искал, искал и долго и много. Но внятного и понятного мне не обнаружил. Запросы вводил разные: «python3 xhr», «python3 requests xhr», «python3 requests xhr», «python3 запрос заголовков», «python3 URL запроса», «python3 URL ajax» и многое другое ...

Вообщем сечас имею то что имею.

Ответ: bvn13

url = scheme + host:port + path + searchQuery
ищи эти части, склеивай

Смысл верный, как-то так и есть, но как это все найти и получить? До этого пытался сам похожим путем идти, искать фрагменты строк и соединять.

Ответ: anonymous

Обмазывайся этим https://github.com/jeanphix/Ghost.py

Заинтересовало, на сейчас все установил,пытаюсь вникнуть как работает и что могу узнать...

Ваш ответ:

Вот тебе ответ по первой же ссылке на запрос «python requests print request»:
import requests
import httplib
...

Нужно разбираться с библиотекой http.client или httplib2.

Как-то так!

Alecsandr1980 ()
Ответ на: комментарий от Alecsandr1980

Ну, да, я уже после того как запостил, осознал, что нужен был именно третий. В любом случае, он до сих пор во многих дистрах основной, а направление в целом верно и для третьего. Там были и другие ответы, разумеется, ибо первым в выдаче по таким вопросам почти всегда будет stack oveflow.

WitcherGeralt ★★ ()