Python爬虫实例扒取2345天气预报

Python爬虫实例扒取2345天气预报,第1张

概述寒假里学习了一下Python爬虫,使用最简单的方法扒取需要的天气数据,对,没听错,最简单的方法。甚至没有一个函数封装。。

寒假里学习了一下Python爬虫,使用最简单的方法扒取需要的天气数据,对,没听错,最简单的方法。甚至没有一个函数封装。。

网址:http://tianqi.2345.com/wea_history/53892.htm

火狐中右键查看网页源代码,没有发现天气数据,因此推断网页采用的Json格式数据。

右击->查看元素->网络->Js,找到了位置

用Python爬虫下载为Json格式数据存储下来,代码如下:

#-*- Coding:utf-8 -*- import urllib2 import Json  months = [1,2,3,4,5,6,7,8,9,10,11,12] years = [2011,2012,2013,2014,2015,2016] city = [53892]  #邯郸代码53892  for y in years:   for m in months:     for c in city:       url = "http://tianqi.2345.com/t/wea_history/Js/"+str(c)+"_"+str(y)+str(m)+".Js?qq-pf-to=pcqq.c2c"       print url       HTML = urllib2.urlopen(url)       srcdata = HTML.read()       #JsonData = Json.loads(srcdata)       file = open("d:/Json/"+str(c)+"handan/weather"+str(c)+"_"+str(y)+str(m)+".Json","w")       file.write(srcdata)       file.close() 
扒取存到本地:

因为是刚学,学一点就动手实践了一下,还没有学到Json的转换,直接使用的正则匹配,提取Json中的数据,直接打印

提取转换Json文件中的数据Python代码:

#-*- Coding:utf-8 -*- import Json import re import time  Year = [2014] Month = [1]  for y in Year:   for m in Month:          """     2016年2月15日终于改成功。     是因为正则匹配后的编码问题,导致输出时无法显示。     在每个正则匹配的元组后添加 .decode('gbk').encode('utf-8'),成功输出     """     content = fRead.read()     pattern = re.compile('{ymd:\'(.*?)\',bWendu:\'(.*?)\',yWendu:\'(.*?)\',tianqi:\'(.*?)\',fengxiang:\'(.*?)\',fengli:\'(.*?)\'},',re.S)     items = re.findall(pattern,content)     for item in items:       print item[0].decode('gbk').encode('utf-8'),","+item[1].decode('gbk').encode('utf-8'),"+item[2].decode('gbk').encode('utf-8'),"+item[3].decode('gbk').encode('utf-8'),"+item[4].decode('gbk').encode('utf-8'),"+item[5].decode('gbk').encode('utf-8')       time.sleep(0.1)      fRead.close() 

使用Sublime Text 3运行

使用正则处理的一大问题就是,格式不整齐,总会漏掉一些数据。可能是由于匹配的速度过快导致部分数据缺失,但是通过time.sleep() 睡眠依旧不能解决问题。

由此可以看出正则匹配时的缺陷,待以后使用Python中专门用于处理Json数据的包以后,再重新试一下

您可能感兴趣的文章:Python爬虫天气预报实例详解(小白入门)python定时利用QQ邮件发送天气预报的实例Python爬取国外天气预报网站的方法python显示天气预报Python天气预报采集器实现代码(网页爬虫) 总结

以上是内存溢出为你收集整理的Python爬虫实例扒取2345天气预报全部内容,希望文章能够帮你解决Python爬虫实例扒取2345天气预报所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1200559.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存