如何使用Python请求在网页上过滤结果?

时间:2019-10-22 17:57:16

标签: python filter get python-requests

我正在努力从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 个答案:

答案 0 :(得分:2)

实际上,看起来网站确实将状态作为参数。确切的名称是“ stateFacet”。

您可以将get请求发送至:

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

此链接将过滤特拉华州。

答案 1 :(得分:0)

如果端点不支持它,那么您将无法通过URL获得它。您将需要研究更复杂的方法,或者找出正确的URL参数(如果有的话)。

答案 2 :(得分:0)

您将无法处理请求。您可能需要使用类似Selenium之类的东西来模拟单击下拉列表并选择所需的过滤器。这是因为下拉菜单的逻辑全部是JavaScript,无法通过URL请求完成。