首页 > Python > 用Python从中国天气网定时抓取天气实况
2017
06-05

用Python从中国天气网定时抓取天气实况

一、抓取天气实况

中国天气网中,大连的天气地址是:http://www.weather.com.cn/weather1d/101070201.shtml

通过Chrome的开发者工具观察页面,页面调用Ajax从如下网址获得天气信息的JS代码:

天气实况:http://d1.weather.com.cn/sk_2d/101070201.html

天气预报:http://d1.weather.com.cn/dingzhi/101070201.html

但是用浏览器直接打开,会得到“403拒绝访问”。那就一定是在发送请求的时候附带了某种信息,以区别是否是自己的网页来调用。首先想到的是cookies,但是模拟之后还是403。再就模拟添加Refere头,发现可以获得数据了!

用Python从中国天气网定时抓取天气实况 - 第1张  | 老王的网站

剩下的就是用Python将返回的JS代码处理一下,变成标准的JSON格式,解析之后就可以使用了。

二、定时执行抓取任务

Python的sched模块可以定期执行任务。但是scheduler的run()方法是阻塞的,执行后将无法进行别的操作。所以,需要启一个线程来执行定时任务。

★完整代码在GitHub上:https://github.com/searky/WeatherCrawler

最后编辑:
作者:Searky
这个作者貌似有点懒,什么都没有留下。

用Python从中国天气网定时抓取天气实况》有 2 条评论

  1. 匿名 说:

    帅气啊,

  2. 天气吉姆 说:

    感谢您的详细解释! 这看起来非常好!

留下一个回复

你的email不会被公开。