Web Scraping Weather Data 400 error
我尝试过使用params的get请求,使用和不使用json.dumps发布请求,但我似乎无法从网页获得正确的响应。
我想找回包含所有天气数据的文本文件。我的代码,数据我
想要,并使用chrome on chrome发布请求的标题
连接。
感谢您的任何帮助!
您也可以通过以下方式获取数据
- 去http://climod2.nrcc.cornell.edu
- 点击每日数据列表
- 输入日期从6/1/18到当前日期
- 检查csv而不是html
-
然后输入纽约市中央公园,以便选择将返回的车站
用该站搜索结果然后单击go。以下是截图:
- 尝试
- 由于无法发布超过8个链接而不得不删除。
- 头
- 期望的数据
-
响应数据
`
从urllib.request导入urlopen作为uReq
从bs4导入BeautifulSoup作为汤
导入请求
导入日期时间
导入json
payload = {'method':'POST','params':{"elems":[{"name":"maxt","add":"t"},
{"名称":"薄荷","添加":"T"},{"名称":"PCPN","添加":"T"},
{"名":"雪","添加":"T"},{"名":"snwd","添加":"T"}],"SID":"94728
1" ,"SDATE":"2018年6月1日","EDATE":"2018年6月28日"}, '输出': 'JSON'}
parameters = {"elems":[{"name":"maxt","add":"t"},{"name":"mint","add":"t"},
{"名":"PCPN","添加":"T"},{"名":"雪","添加":"T"},
{"name":"snwd","add":"t"}],"sid":"94728 1","sDate":"2018-06-
01" ,"EDATE":"2018年6月28日"}
headers = {'Accept':'application / json,text / javascript,/;
q = 0.01','Content-Type':'application / x-www-form-urlencoded;字符集= UTF-
8','Origin':'http://climod2.nrcc.cornell.edu','Referer':'http://climod2.nrcc.cornell.edu/elems=name& elems = add& elems = name& elems的=添加&安培; elems的=名&安培; elems的=添加&安培; elems的=名&安培; elems的=添加&安培; elems的=名&安培; elems的=添加&安培; SDATE = 2018年6月1日和安培; EDATE = 2018年6月28日&安培;间=名&安培;间= state& meta = ll& meta = sids& bbox = -74.44262803978918& bbox = 40.4207924883181& bbox = -73.4880821602','User-Agent':'Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36( KHTML,像Gecko)Chrome / 67.0.3396.87 Safari / 537.36'}
dataurl =的 'https://data.rcc-acis.org/StnData'
r = requests.post(dataurl,data = json.dumps(payload),headers = headers)
打印(r.status_code)
打印(r.elapsed)
打印(r.json)
打印(r.text)`
您只需将有效负载设置为正确即可。
这样就可以了。
[cc]
来自pprint import pprint
url ="https://data.rcc-acis.org/StnMeta"
payload = {
"输出":"json",
"params":{"elems":[{"name":"maxt","add":"t"},{"name":"mint","add":"t"},{"name":"PCPN","添加":"T"},{"名":"雪","添加":"T"},{"名":"snwd","添加":"T n