Как использовать запросы Python для фильтрации результатов на веб-странице? - PullRequest
0 голосов
/ 22 октября 2019

Я работаю над получением информации от https://www.corporationwiki.com/search/results?term=jim%20smith (просто случайное имя, которое я выбираю, пожалуйста, не возражайте), я хочу отфильтровать результат с помощью раскрывающегося меню и выбрать состояние.

Тем не менее, веб-страница не реализует «Состояния» в качестве параметра, что означает, что URL не изменяется после выбора состояния.

Я попытался передать params в requests.get(), результат не изменился.

Вот код, который я использовал:

url = 'https://www.corporationwiki.com/search/results?term=jim%20smith'
r = requests.get(url, params= dict(
    query="web scraping",
    page=2, states = 'Maryland'),timeout = 5)

Нет сообщения об ошибке,однако, он также не показал мне отфильтрованный результат.

Может кто-нибудь помочь мне передать правильные параметры, чтобы я мог фильтровать результат по состояниям?

Спасибо :))

Ответы [ 3 ]

2 голосов
/ 22 октября 2019

На самом деле, похоже, что веб-сайт реализует состояние в качестве параметра. Точное имя - "stateFacet".

Вы можете просто отправить запрос на получение:

https://www.corporationwiki.com/search/withfacets?term=jim%20smith&stateFacet=state_code

Просто замените state_code на правильное значение. Например:

https://www.corporationwiki.com/search/withfacets?term=jim%20smith&stateFacet=de

Эта ссылка будет отфильтрована по состоянию штата Делавэр.

0 голосов
/ 22 октября 2019

Вы не сможете делать это с запросами. Вам, вероятно, потребуется использовать что-то вроде Selenium , чтобы имитировать нажатие на выпадающий список и выбор фильтров, которые вы хотите. Это потому, что логика этого раскрывающегося списка - это весь javascript, который нельзя выполнить с помощью запроса URL.

0 голосов
/ 22 октября 2019

Если конечная точка не поддерживает это, вы не можете получить его через URL. Вам нужно будет изучить более сложные методы или определить правильный параметр URL, если он есть.

...