2016-06-28 1 views
1

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

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

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

+0

Зависит от конкретного случая использования, я думаю, вы могли бы дать ссылку на страницу, где вы должны выбрать значение в падать? Благодарю. – alecxe

+0

Привет @alecxe Я только что отредактировал вопрос, чтобы включить ссылку, это не точный, но это прекрасный пример. – Lostsoul

+0

Спасибо. Этот образец является простым, каждый раз, когда вы выбираете параметр в раскрывающемся списке, есть запрос AJAX, отправленный на адрес https://www.tsx.com/json/company-directory/search/tsx/ '. В вашем коде вы бы не работали на уровне 'select-option' или' form', вы просто отправляли запрос на 'https://www.tsx.com/json/company-directory/search/tsx/ 'url с желаемой буквой. У вас нет реального браузера и, следовательно, работает на уровне «делать этот запрос», «разыгрывать html», «делать другой запрос». – alecxe

ответ

4

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

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

  • открыт браузер Developer Tools в вашем браузере выбора, Сеть вкладки
  • выберите вариант в раскрывающемся меню
  • наблюдать запрос (ов) отправлено на сервер во вкладке Network
  • имитировать это/эти запросы в коде Python

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

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