寒假里学习了一下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爬虫爬取微博评论 python爬虫是程序员们一定会掌握的知识,练习python爬虫时,很多人会选择爬取微博练手.python爬虫微博根据微博存在于不同媒介上,所爬取的难度有差异,无 ...

  4. python爬虫网络数据包_Python爬虫之多线程图虫网数据爬取(十六)

    Python爬虫之多线程图虫网数据爬取(十六) 发布时间:2019-05-14 10:11, 浏览次数:289 , 标签: Python 原创不易,转载前请注明博主的链接地址:Blessy_Zhu h ...

  5. python爬虫教材推荐 豆瓣_Python爬虫入门教程:豆瓣Top电影爬取

    基本开发环境Python 3.6 Pycharm 相关模块的使用requests parsel csv 安装Python并添加到环境变量,pip安装需要的相关模块即可. 爬虫基本思路 一.明确需求 爬 ...

  6. python基础知识500题_python爬虫基础知识点整理

    更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.sfkyty.com ...

  7. python爬虫爬取图片代码_Python爬虫入门:批量爬取网上图片的两种简单实现方式——基于urllib与requests...

    Python到底多强大,绝对超乎菜鸟们(当然也包括我了)的想象.近期我接触到了爬虫,被小小地震撼一下.总体的感觉就两个词--"强大"和"有趣".今天就跟大家分享 ...

  8. 基于python爬虫的论文标题_python爬虫——简单论文标题检索-Go语言中文社区

    有趣的爬虫,独有的意义召唤着我去学习,去尝试.最近有感于每天对于论文的收集,感觉自己的收集速度赶不上论文的更新速度,同时对于自己想找到的论文的收集比较麻烦.因此,学习用python写一个很简单的爬虫, ...

  9. python爬虫基础项目教程_Python爬虫开发与项目实战_Python教程

    资源名称:Python爬虫开发与项目实战 内容简介: 随着大数据时代到来,网络信息量也变得更多更大,基于传统搜索引擎的局限性,网络爬虫应运而生,本书从基本的爬虫原理开始讲解,通过介绍Pthyon编程语 ...

最新文章

  1. 与python相关的考研专业-给考研人:掌握这项技能,让你每天的学习高效又充实...
  2. 【20181102T2】飞越行星带【智商题+最小瓶颈路】
  3. Eclipse——热键amp;Help
  4. 致盲目标检测算法,阿里清华发起 “对抗攻击” 挑战赛!
  5. Go语言基础之结构体
  6. jedis-2.4.1 中的JedisPoolConfig没MaxActive属性
  7. AD09 pcb绘制技巧笔记
  8. 我的网站防盗链和屏蔽蜘蛛的iis8.5 web.config功能
  9. 如何将栅格数据与行政边界_实时大数据监控–与边界专家Gary Read进行问答
  10. ESP32开发学习 LVGL Littlevgl 解码显示JPG图片三种方式JPG_SJPG_C Array
  11. 奔骝定位摄影作品之LAS100
  12. 程序员给女朋友庆祝节日的方式
  13. php操作Word之com组件-获取word文档页码和更新目录
  14. android监控虚拟键盘,android虚拟键盘的监控,显示和隐藏
  15. python循环控制--for-else循环
  16. 基于Ubuntu 操作系统如何卸载软件?
  17. 安信可VC系列语音识别的使用教程
  18. 【WebGL-iTwin.js】先导篇:用bentley-iTwin.js搭建模型在线可视化平台
  19. 利用Python自动操纵鼠标键盘刷金币,工作室都是靠这种搬砖
  20. MySQL之DQL(数据查询语言)-常见关键字

热门文章

  1. 浅谈进程同步和互斥的概念
  2. js控制文本栏只能输入数字
  3. scala 日期格式转换
  4. get_date.sh
  5. JS获取URL中参数值(QueryString)的4种方法分享
  6. 如何区别一幅图像是否是黑白图像
  7. mybatis-spring从1.1升级到1.2所带来的dao层级的编写问题
  8. ios中tableview网封装(viewcontroller封装)常用的
  9. C#中调用命令行程序开启wifi热点
  10. Java集合知识:TreeMap