使用Python请求帖子

时间:2018-08-19 16:22:00

标签: python python-requests

这是我第一次尝试requests.post(),因为我一直使用requests.get()。因此,我试图导航到一个网站并进行搜索。我正在使用yellowpages.com,在获得有关使用该网站抓取或API的负面反馈之前,我只想尝试一下。我遇到的问题是,它吐出了一些不是我想要的html的html。我将在下面发布我的代码,向您展示我在说什么。

headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
url = "https://www.yellowpages.com"
search_terms = "Car Dealership"
location = "Jackson, MS"
q = {'search_terms': search_terms, 'geo_locations_terms': location}
page = requests.post(url, headers=headers, params=q)

print(page.text)

1 个答案:

答案 0 :(得分:2)

您的请求归结为

$ curl -X POST \
  -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36' \
  'https://www.yellowpages.com/?search_terms=Car Dealership&geo_locations_terms=Jackson, MS'

为此,服务器返回一个502 Bad Gateway状态代码。

原因是您将POST与查询参数params一起使用。两者相处得不好。请改用data

requests.post(url, headers=headers, data=q)