寒假里学习了一下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爬虫实例扒取2345天气预报相关推荐

  1. python爬虫能扒什么_Python爬虫实例扒取2345天气预报

    寒假里学习了一下Python爬虫,使用最简单的方法扒取需要的天气数据,对,没听错,最简单的方法.甚至没有一个函数封装.. 网址:http://tianqi.2345.com/wea_history/5 ...

  2. python爬虫天气预报_Python爬虫实例扒取2345天气预报

    寒假里学习了一下Python爬虫,使用最简单的方法扒取需要的天气数据,对,没听错,最简单的方法.甚至没有一个函数封装.. 网址:http://tianqi.2345.com/wea_history/5 ...

  3. python爬虫天气数据_python爬虫:天气数据的分析

    就在前几天还是二十多度的舒适温度,今天一下子就变成了个位数,小编已经感受到冬天寒风的无情了.之前对获取天气都是数据上的搜集,做成了一个数据表后,对温度变化的感知并不直观.那么,我们能不能用python ...

  4. python回测工具_Python爬虫回测股票的实例讲解

    股票和基金一直是热门的话题,很多周围的人都选择不同种类的理财方式.就股票而言,肯定是短时间内收益最大化,这里我们需要用python爬虫的方法,来帮助我们获取一些股票的数据,这样才能更好的买到相应的股票 ...

  5. pythonrequests爬虫外文文献_Python爬虫(一):爬虫介绍、Requests库介绍及实例-Go语言中文社区...

    本文主要内容: 1.爬虫的相关概念. 2.Requsets库安装. 3.Requests库介绍. 4.爬取网页的通用代码框架. 1.爬虫相关概念. 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社 ...

  6. python爬虫面试问题_Python爬虫面试总结

    ## Python爬虫面试总结 1. 写一个邮箱地址的正则表达式? [A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$ 2. 谈 ...

  7. python爬虫requests实战_Python爬虫之requests库网络爬取简单实战

    实例1:直接爬取网页 实例2 : 构造headers,突破访问限制,模拟浏览器爬取网页 实例3 : 分析请求参数,构造请求参数爬取所需网页 实例4: 爬取图片 实例5: 分析请求参数,构造请求参数爬取 ...

  8. python编程理论篇_Python爬虫入门实战之猫眼电影数据抓取(理论篇)

    前言 本文可能篇幅较长,但是绝对干货满满,提供了大量的学习资源和途径.达到让读者独立自主的编写基础网络爬虫的目标,这也是本文的主旨,输出有价值能够真正帮助到读者的知识,即授人以鱼不如授人以渔,让我们直 ...

  9. python微课视频教程_Python基础实例教程(微课版)

    第 1章 初识Python 1 1.1 快速了解Python 2 1.1.1 Python的起源与背景 2 1.1.2 Python的功能 3 1.1.3 Python的优势与特色 4 1.2 在Wi ...

最新文章

  1. 二 Array 数组常用操作方法
  2. Beta 冲刺(1/7)
  3. 正则表达式:(?=a)是什么意思?
  4. 关于区块链的一些思绪
  5. Fragment中获取Activity的Context
  6. ATAT的安装bug在centos7--换了个其他集群安装确没有问题(可能和系统的配置相关)
  7. 聚宽量化投资策略研究
  8. Python字符串练习
  9. 产品经理如何写PRD文档[最全]
  10. 强化学习基础05——gym
  11. 算法笔记——渐进分析和渐进符号
  12. sap入门--操作指南
  13. 做销售如何有效地维护好与客户的关系
  14. 12.5--卡片式布局
  15. 解决连接 ssh 的时候 ,报 The server key has changed 错误
  16. 用C语言编写简易计算器
  17. 长春SEO优化:SEO优化开篇——内容优化
  18. windows mysql8安装_Windows上安装mysql8.0
  19. 何为高度塌陷,如何解决?
  20. 篱笆家装宝典之十六——装修前期准备

热门文章

  1. 年会弹幕文字_微信弹幕_微信墙/弹幕抽奖/晚会年会必备互动
  2. 为期两年的研究揭示了Android的大问题
  3. VS2017生成项目报 找不到资产文件“xxxx\obj\project.assets.json
  4. 世界上第一台电子计算机名叫试题,计算机应用基础习题填空题1世界上第一台电子计算机名为.DOC...
  5. TypeScrpt 学习指南
  6. linux版本市场占有率,2020年5月OS市场占有率报告:Ubuntu和Linux分别占有1.89%和0.97%...
  7. 2021年中国国产剧播出现状及行业发展趋势分析:网络剧播映指数上升明显,未来小体量精品短剧将会越来越多[图]
  8. 总结使人进步,遵循事物的发展规律
  9. unity物体自身轴旋转_Unity实现物体沿自身的任意轴向旋转
  10. 朋友圈如何分享pdf