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


Posted in Python onMarch 04, 2018

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

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

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

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

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

用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写的服务监控程序实例
Jan 31 Python
Python实现豆瓣图片下载的方法
May 25 Python
python实现决策树、随机森林的简单原理
Mar 26 Python
Python实现判断并移除列表指定位置元素的方法
Apr 13 Python
基于python神经卷积网络的人脸识别
May 24 Python
Python解决走迷宫问题算法示例
Jul 27 Python
python爬取内容存入Excel实例
Feb 20 Python
python将时分秒转换成秒的实例
Dec 07 Python
python内置模块collections知识点总结
Dec 19 Python
基于python实现查询ip地址来源
Jun 02 Python
openCV提取图像中的矩形区域
Jul 21 Python
python MD5加密的示例
Oct 19 Python
Python爬虫设置代理IP的方法(爬虫技巧)
Mar 04 #Python
浅析python实现scrapy定时执行爬虫
Mar 04 #Python
Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
Mar 04 #Python
Python爬虫框架Scrapy实例代码
Mar 04 #Python
详解python中asyncio模块
Mar 03 #Python
python3.6+django2.0开发一套学员管理系统
Mar 03 #Python
python爬虫面试宝典(常见问题)
Mar 02 #Python
You might like
重置版游戏视频
2020/04/09 魔兽争霸
落伍首发 php+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
2006/12/16 PHP
php算开始时间到过期时间的相隔的天数
2011/01/12 PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
2013/12/25 PHP
PHP实现的随机IP函数【国内IP段】
2016/07/20 PHP
php版微信自动登录并获取昵称的方法
2016/09/23 PHP
php实现xml转换数组的方法示例
2017/02/03 PHP
PHP设计模式之工厂模式定义与用法详解
2018/04/03 PHP
Ubuntu彻底删除PHP7.0的方法
2018/07/27 PHP
IE 上下滚动展示模仿Marquee机制
2009/12/20 Javascript
js 全兼容可高亮二级缓冲折叠菜单
2010/06/04 Javascript
Javascript 中的 call 和 apply使用介绍
2012/02/22 Javascript
JavaScript前端图片加载管理器imagepool使用详解
2014/12/29 Javascript
Javascript基础教程之定义和调用函数
2015/01/18 Javascript
JavaScript判断是否为数字的4种方法及效率比较
2015/04/01 Javascript
jQuery实现dialog设置focus焦点的方法
2015/06/10 Javascript
Bootstrap每天必学之面板
2015/11/30 Javascript
JavaScript图像延迟加载库Echo.js
2016/04/05 Javascript
微信公众号  提示:Unauthorized API function 问题解决方法
2016/12/05 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
2017/02/17 Javascript
vue渲染时闪烁{{}}的问题及解决方法
2018/03/28 Javascript
Angular4 反向代理Details实践
2018/05/30 Javascript
MVVM框架下实现分页功能示例
2018/06/14 Javascript
Vue编程式跳转的实例代码详解
2019/07/10 Javascript
JavaScript本地储存:localStorage、sessionStorage、cookie的使用
2020/10/13 Javascript
python提取内容关键词的方法
2015/03/16 Python
python抓取网站的图片并下载到本地的方法
2018/05/22 Python
Django实现WebSSH操作物理机或虚拟机的方法
2019/11/06 Python
pytorch点乘与叉乘示例讲解
2019/12/27 Python
Python对称的二叉树多种思路实现方法
2020/02/28 Python
Python实现UDP程序通信过程图解
2020/05/15 Python
python让函数不返回结果的方法
2020/06/22 Python
HTML5 标准将把互联网视频扔回到黑暗时代
2010/02/10 HTML / CSS
最新茶叶店创业计划书
2014/01/14 职场文书
大学生怎样写好自荐信
2014/02/25 职场文书
反邪教宣传工作方案
2014/05/07 职场文书