Найти - Пользователи
Полная версия: Возможно ли получить ссылки, на которые идут запросы при загрузке страницы?
Начало » Python для новичков » Возможно ли получить ссылки, на которые идут запросы при загрузке страницы?
1
Resistanse
Возможно ли получить ссылки, на которые идут запросы при загрузке страницы?
Возможно ли Request url(с него подгружаются дополнительная информация на сайт) после запроса на необходимую страницу?Если возможно,то буду рад если дадите наводку. На скрине отметил что конкретно я имею ввиду.
FishHook
Resistanse
Возможно ли получить ссылки, на которые идут запросы при загрузке страницы?
Получите страницу и распарсите её получив теги нужных ссылок и извлеките сорс. В чем конкретно вопрос то? Вы вообще понимаете, что происходит при загрузке страницы?
Resistanse
FishHook
Я все понимаю.Мне нужна именно эта ссылка. Распарсить не получится, т.к. там html выводится автоматически через javascript.
FishHook
Resistanse
Я все понимаю.
А я - ни черта не понимаю. Вы прислали не HTML, а шаблон страницы для некоего шаблонизатора. Зачем вам парсить собственную страницу?
papuas
 import requests
from lxml import html
r = requests.get('http://google.com')
google = html.fromstring(r.content)
print(google.xpath('//a/@href'))


 ['http://www.google.com/imghp?hl=en&tab=wi',
 'http://maps.google.com/maps?hl=en&tab=wl',
 'https://play.google.com/?hl=en&tab=w8',
 'http://www.youtube.com/?gl=US&tab=w1',
 'http://news.google.com/nwshp?hl=en&tab=wn',
 'https://mail.google.com/mail/?tab=wm',
 'https://drive.google.com/?tab=wo',
 'https://www.google.com/intl/en/options/',
 'http://www.google.com/history/optout?hl=en',
 '/preferences?hl=en',
 'https://accounts.google.com/ServiceLogin?hl=en&passive=true&continue=http://www.google.com/',
 '/advanced_search?hl=en&authuser=0',
 '/language_tools?hl=en&authuser=0',
 '/intl/en/ads/', '/services/',
 'https://plus.google.com/116899029375914044550',
 '/intl/en/about.html',
 '/intl/en/policies/privacy/',
 '/intl/en/policies/terms/']
py.user.next
Resistanse
Возможно ли получить ссылки, на которые идут запросы при загрузке страницы?
На странице может и не быть какого-то участка кода вообще. При загрузке скрипт, записанный в html-странице, заставляет браузер добавить какое-то размеченное содержимое в документ. Причём этот документ уже загружен в оперативную память браузера. Добавление кода через скрипт содержимое скачанной html-страницы никак не меняет и никак к ней не относится уже. Скачанная страница используется только один раз - чтобы построить документ в памяти и загрузить содержимое самих скриптов. А скрипты уже выполняются браузером и работают с этой памятью.

Питон же загружает только саму html-страницу и не выполняет из неё ничего, ничего не строит. Поэтому скрипты из этой страницы ничего не могут добавить в документ, потому что как они не выполняются питоном, так и документ просто не построен в памяти.

Представь просто, что ты загружаешь страницу, у которой тег body есть, но при этом он пустой. В этой странице есть скрипт на JavaScript, который в тег body добавляет тег form с полями и кнопками. Дальше ты видишь просто, что документ загрузился и в нём есть одна форма, которую можно заполнить и отправить. Ты никак не заметишь, что формы нет в самой странице. Она очень быстро добавилась прямо в дерево документа, построенное в оперативной памяти браузера. Её браузер добавил на лету. При этом в браузере страница выглядит неотличимо, будто форма записана прямо в странице. И вот эта форма, когда ты её отправляешь, превращается в запрос браузера.

Так что тебе надо выполнить скрипты на построенном дереве. Питон дерево не строит, а скачивает только содержимое страницы. А чтобы сделать из питона браузер, используют Selenium. Сам Selenium медленный и его не используют для самих программ, обычно только для тестирования.
Resistanse
Спасибо всем за ответы,вчера нашел альтернативное решение проблемы
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB