再传一个地阶功法(爬天气信息)

10 条回复
114 次浏览

我是不相信第三方 API(主要是收费),所以自己找了一下
天气网: https://www.weather.com.cn/

image
打开网站,抓包就能看到怎么获取的,还可以白嫖 IP whois,这样就可以根据 IP 获取用户位置再查天气。
天气信息: https://d1.weather.com.cn/weather_index/101200101.html?_=1769051590198
这里怎么解析我就不赘述了,既然来这个论坛,解析这些数据都不是问题。
1、这个请求防盗链,需要加上 referer。
2、这个 101200101 怎么来的?

第一个问题看看就知道了,这里只说第二个问题。
101200101 这个不是随便编的 id,这个数字是城市代码
中国国家气象局天气预报信息接口: https://www.cnblogs.com/youlixishi/articles/3612035.html
中国天气网城市代码: https://blog.csdn.net/weixin_30492047/article/details/98287973

如果只是网上搜,那就是玄阶功法了,毕竟网上信息不一定及时,行政区划会有变化。
直接去爬
https://topic.alibabacloud.com/a/china-weather-net-interface-font-colorredreturnfont-font-colorredjsonfont-format-parsing-and-interface-xml-picture-interface-description_1_11_30654886.html
获取省级代码: http://www.weather.com.cn/data/list3/city.xml?level=1
比如湖北是 20
获取城市代码: https://www.weather.com.cn/data/list3/city20.xml?level=2
比如武汉市是 2001
获取区代码: https://www.weather.com.cn/data/list3/city2001.xml?level=3
这里城市天气代码,不是行政区划,所以有的没有(可能数据没更新,反正是顺序递增)
最终就是 101+20+01+01
打开报错是吧?
image
楼主,打开报错了。
那是因为显示的.xml 实际上不是 xml 文件,浏览器当 xml 渲染当然报错,直接查看源代码。
image
直接 view-source
image
简易信息

❤️3
👍2
讲故事的人
OP
Guardian

之前自己封装了城市 id 的 api,不过要下线那个服务了,后面要迁移到其他地方。

讲故事的人
OP
Guardian

天气网有防盗链相关措施,尝试加上 referer,ua 请求头,另外这个返回的是文本,不是 xml 格式,详见正文相关说明

发表一个评论

R保持