requests 获取数据咨询

2017-06-22 09:21:29 +08:00
 coolloves
想获取中国天气网的天气预警列表,http://www.weather.com.cn/alarm/warninglist.shtml
比如获取北京的暴雨黄色预警,看了下,是通过 js 请求 http://product.weather.com.cn/alarm/grepalarm.php?areaid=10101[\d]{0,2}&type=02&level=02&_=1498094080205
可是为什么我直接打开这个地址是 404 呢,用 requests 获取的和浏览器打开一样,请问这个请求应该如何处理呢,谢谢

import requests
import time

url = 'http://product.weather.com.cn/alarm/grepalarm.php?areaid=10101[\d]{0,2}&type=02&level=02&_=' + str(int(time.time() * 1000))
res = requests.get(url)
print res.content
2489 次点击
所在节点    Python
12 条回复
5dkgansm
2017-06-22 09:24:42 +08:00
你仔细想想你的请求头和浏览器一样了吗?
coolloves
2017-06-22 09:26:23 +08:00
@5dkgansm 我加了 header 也是一样
用浏览器直接打开这个 url 也是 404
5dkgansm
2017-06-22 09:30:51 +08:00
http://www.weather.com.cn/alarm/newalarmcontent.shtml?file=1012407-20170622082417-0902.html 这个是随便点开的地址,你访问的地址是什么?难道是生成的不是抓的? 代码贴全看看。
Troevil
2017-06-22 09:34:36 +08:00
带上 Cookie 即可
Troevil
2017-06-22 09:35:32 +08:00
Troevil
2017-06-22 09:36:53 +08:00
coolloves
2017-06-22 09:43:12 +08:00
@5dkgansm 感谢耐心回复哈
我的目的就是想获取下预警列表,然后如果有我当地的预警,比如北京的,然后我在访问具体的预警内容,学 python 不久,谢谢.

import requests
import time

url = 'http://product.weather.com.cn/alarm/grepalarm.php?areaid=[0-9]{5,7}&_=' + str(int(time.time() * 1000))
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36',
'Refefer':'http://www.weather.com.cn/alarm/warninglist.shtml',
'DNT': 1,
'Host':'product.weather.com.cn'}
r = requests.Session()
pre_res = r.get('http://www.weather.com.cn/alarm/warninglist.shtml',headers=headers)
res = r.get(url,headers=headers)
print res.content
coolloves
2017-06-22 09:47:03 +08:00
@Troevil 拼写错误了...多谢
@5dkgansm 谢谢指点,是 referer 拼写错了,
PythoneerDev6
2017-06-22 09:50:06 +08:00
是的 得先分析头信息。 我的公众号 DeveloperPython 欢迎你。
liukangxu
2017-06-22 10:11:49 +08:00
@Troevil 这是个什么工具?求教
xiaomeimei
2017-06-22 10:14:07 +08:00
@liukangxu chrome 插件,postman
Troevil
2017-06-22 10:18:46 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/370205

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX