我想做以下工作。你知道吗
1)转到https://www.wunderground.com/history
2)提交带有以下值的表格:
位置='加利福尼亚州洛杉矶'
月='十一月'
日期='02'
年份='2017'
3)检索响应并保存到文件
以下是我目前拥有的,但不起作用:
import requests
url = 'https://www.wunderground.com/history'
payload = {'code': 'Los Angeles, CA', 'month': 'November', 'day': '2', 'year':'2017'}
r = requests.post(url, params=payload)
with open('test.html', 'w') as f:
f.write(r.text)
我没有得到预期的响应,也不确定是否正确使用了请求。你知道吗
我知道有一个来自wunderground的API,但现在不想使用它。你知道吗
内容测试.html基本上是没有历史数据的原始页面。你知道吗
我期待这一页:
你不能盲目地发送有效载荷到一些网站,并期待一个好的结果。首先,查看
form
元素的源代码。我去掉了一些不重要的部分:首先,从
form
元素的method
属性可以看出,必须使用GET方法而不是POST来发送有效负载。第二,从action
属性中,您还可以看到应该将有效负载发送到此特定URL:有效负载本身不仅仅是要发送的值。在许多情况下,必须发送附加值才能使web服务器正确响应。通常最好要么发送所有内容(基本上是每个
name
属性),要么检查网站实际发送的内容。你知道吗此代码适用于我:
尝试
requests.get
而不是requests.post
,因为GET似乎应该提供参数。你知道吗关于GET vs POST的更多信息:https://www.w3schools.com/tags/ref_httpmethods.asp
相关问题 更多 >
编程相关推荐