Может ли lxml / запросы выбрать параметры раскрывающегося списка, а затем проанализировать полученный ajax?

У меня есть сайт, который я пытаюсь протестировать, и хотя я могу получить список параметров в раскрывающемся списке, я не уверен, как выбрать его? Нет кнопки отправки, поэтому, если я выберу ее, она загрузит таблицу ajax ниже.

Я просто не уверен, что lxml / запросы могут это сделать или как это можно сделать? Буду признателен, если кто-нибудь сможет подтвердить или знает функцию, которая может это сделать?

изменить: мой сайт является внутренним и недоступным, но вот пример сайта:https://www.tsx.com/listings/listing-with-us/listed-company-directory Обратите внимание, что если вы установите флажок рядом с поиском, он получит результаты Ajax (A, B, C и т. Д.)

 Lostsoul28 июн. 2016 г., 16:54
Привет @alecxe Я только что отредактировал вопрос, чтобы включить ссылку, она не точная, но является прекрасным примером.
 alecxe28 июн. 2016 г., 16:51
Зависит от конкретного варианта использования. Не могли бы вы предоставить ссылку на страницу, где вы должны выбрать значение в раскрывающемся списке? Благодарю.
 Lostsoul28 июн. 2016 г., 18:28
@alecxe это так круто. Я только что проверил, и это сработало! Бесконечно благодарен! Если вы хотите поставить это как ответ, я с радостью отмечу это как ответ.
 Lostsoul28 июн. 2016 г., 18:23
@alecxe, боже мой, спасибо, Алекс, это круто, но из-за моего внутреннего примера на сайте я не знаю, как получить этот звонок. Как мне получить звонок, который он делает? Есть ли название для него или инструмент, который я мог бы использовать?
 alecxe28 июн. 2016 г., 18:26
Конечно, откройте инструменты разработчика браузера, вкладку сети. Выберите выпадающий список и посмотрите, какие запросы отправляются на сервер. Затем ваша задача будет имитировать тот же запрос (ы) через запросы.
 alecxe28 июн. 2016 г., 17:03
Спасибо. Этот пример является простым, каждый раз, когда вы выбираете опцию в раскрывающемся списке, AJAX-запрос отправляетсяhttps://www.tsx.com/json/company-directory/search/tsx/<letter> URL. В вашем коде вы не будете работать наselect-option или жеform уровень, вы бы просто отправить запрос наhttps://www.tsx.com/json/company-directory/search/tsx/<letter> URL с нужной буквой. У вас нет реального браузера и, следовательно, вы работаете на уровне «сделать этот запрос», «разобрать html», «сделать другой запрос».

Ответы на вопрос(1)

Решение Вопроса

lxml+requests настройки, вы работаете на другом уровне, более низком уровне. Там нет выпадающих дляrequests, это не браузер.

Общий подход к вашей проблеме заключается в следующем:

откройте Инструменты разработчика браузера в выбранном браузере, вкладка етьвыберите опцию в выпадающемнаблюдать запрос (ы), отправленные на сервер во вкладке етьсмоделируйте эти / эти запросы в вашем коде Python

Есть еще одна «хитрость», которую вы можете использовать, чтобы упростить переход инструментов разработчика на запросы:

щелкните правой кнопкой мыши запрос в списке запросов на вкладке етьнажмите «Копировать как cURL»идти кhttp://curl.trillworks.com/ веб-страницу и преобразовать команду cURL в код Python + Requests

Ваш ответ на вопрос