`
小羊fc
  • 浏览: 90277 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

python正则匹配解析中国天气网的天气数据

 
阅读更多

最近学习python 感觉这门脚本语言十分灵活 而且功能十分强大 尤其是他re库用于正则匹配十分强大

写了个例子解析中国天气网 

例如 terminal中输入python weather.py http://www.weather.com.cn/weather/101010100.shtml  北京6天的天气数据 json格式

 

#coding=utf-8
#weather.py
import urllib
import re
import simplejson
import sys

if len(sys.argv) != 2:
	print 'please enter: python ' + sys.argv[0] + '  <url>'
	exit(0) 
url = sys.argv[1];
def readurlPageContent(url):#获取页面的所有数据 逐行读取
	webpage = urllib.urlopen(url);
	line = webpage.readline();
	data = ''
	while line:
		data = data + line.strip(); #去除每行两边的的空格
		line = webpage.readline(); 
	return data

def getDatabody(data):
	reg = re.compile(r'(<div class=\"weatherYubaoBox\">(?:(?!<div)(?!</div).)*</div>)');
	matchs = reg.findall(data,re.I);
	if len(matchs) > 0:
		return matchs[0]
	return None

def getSixDayWeather(data):
	regs = re.compile(r'>((?:(?!<)(?!>)(?!var).)+)<');
	datas = regs.findall(data)
	if len(datas) > 12:
		datas = datas[12:len(datas)-7];#提取其中的78项 即后面6天的天气数据 每天相关的信息有13个

		return datas	
	return None


data = readurlPageContent(url);
match_data = getDatabody(data)
if match_data == None :
	print 'get weather data fail'
	exit(0)

weathers_data = getSixDayWeather(match_data)
if weathers_data == None:
	print 'get six day info fail'
	exit(0)

count = len(weathers_data);
groups_item_count = count / 6;
weathers = {};
groups = [];

start = 0
for item in weathers_data :
	if (start % groups_item_count) == 0:
		groups = [];
		weathers[('day'+str(start/groups_item_count + 1))] = groups;

	groups.append(item)
	start = start + 1


print simplejson.dumps(weathers, encoding='UTF-8', ensure_ascii=False)

 

 

 

其中会用到simplejson这个库  呵呵 如何安装 你懂的

 

1
1
分享到:
评论

相关推荐

    Python正则表达式视频

    Python正则表达式是Python编程语言中的一个强大工具,它用于处理字符串,特别是搜索、匹配、替换等操作。在爬虫开发中,正则表达式是必不可少的一部分,因为我们需要使用它来提取网页上的数据。本视频教程将深入浅出...

    第11.25节 Python正则表达式编译re.compile及正则对象使用.rar

    总结,`re.compile()`是Python正则表达式的重要工具,它使得我们可以预先编译正则表达式模式,提高程序的效率和可读性。通过创建正则表达式对象,我们可以灵活地执行多种正则操作,如查找、替换和分割字符串,从而在...

    python正则表达式.zip

    正则表述式用于搜索、替换和解析字符串。正则表达式遵循一定的语法规则,使用非常 灵活,功能强大。使用正则表达式编写一些逻辑验证非常方便,例如电子邮件地址格式的验 证。正则表达式是对字符串(包括普通字符...

    python正则表达式_深入浅出

    Python正则表达式是Python编程语言中用于处理文本的强大工具,它允许程序员高效地搜索、匹配、替换符合特定模式的字符串。深入理解Python正则表达式对于任何希望在数据处理、文本分析或网络爬虫等领域工作的开发者来...

    匹配img标签_匹配src中的值

    使用这个正则表达式,我们可以用编程语言如JavaScript、Python等进行匹配操作,找出所有`&lt;img&gt;`标签的`src`值。例如,在JavaScript中,可以使用`match()`函数: ```javascript const html = "HTML文本"; const ...

    python正则整理

    ### Python正则表达式详解 #### 一、引言 Python自1.5版本起引入了`re`模块,这标志着Python正式支持正则表达式的使用。正则表达式(Regular Expression, RE)是一种小巧而专业化的编程语言,用于字符串模式匹配与...

    python正则表达式详解笔记,python正则表达式教学.doc

    ### Python正则表达式详解 #### 一、正则表达式概述 正则表达式(Regular Expression)是一种在计算机科学领域广泛使用的模式匹配工具。它主要用于处理文本数据,包括搜索、替换以及提取文本中的特定模式。许多...

    Python正则表达式指南

    - **模式标志**:Python正则表达式提供了一系列模式标志,用于修改匹配行为。 - `re.I`(re.IGNORECASE):忽略大小写差异。 - `re.M`(MULTILINE):多行模式,使得“^”和“$”可以匹配每一行的开头和结尾。 - ...

    python使用正则表达式匹配字符串开头并打印示例

    在Python中使用正则表达式匹配字符串开头并打印的示例涉及到几个重要的知识点,包括正则表达式的编写、Python中的正则表达式库re的使用、以及如何利用正则表达式提取特定模式的字符串。以下是对这些知识点的详细介绍...

    python 正则表达式

    通过学习和熟练掌握这些知识点,你可以有效地利用Python正则表达式来处理各种文本数据,提升你的编程效率和代码质量。在实际项目中,结合`re`模块和其他Python库(如BeautifulSoup、Scrapy等),你将能够构建强大的...

    python正则表达式匹配IP代码实例

    Python正则表达式是处理字符串的强大工具,尤其在文本匹配和解析方面表现卓越。其中,正则表达式匹配IP地址是一项非常实用的应用,因为IP地址是网络编程和数据处理中经常出现的对象。本文将详细解析Python正则表达式...

    Python正则解析网页.xmind

    **正则表达式**,又称规则表达式(Regular Expression,在代码中常简写为regex、regexp或RE),正则表达式描述了一种**字符串匹配的模式**(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从...

    Python正则表达式全解析:从基础到高级应用

    正则表达式是一种强大的文本处理工具,用于搜索、替换、检查或解析字符串。Python 提供了内置的 re 模块来支持正则表达式的使用。本文将详细介绍 Python 中正则表达式的使用,包括基本语法、匹配模式、高级搜索技巧...

    python 零基础学习篇-10正则匹配-正则表达式 Regular Expression、

    10正则匹配-正则表达式 Regular Expression、树形模型(树形匹配)-intro bs4、爬虫.zip"这个压缩包包含了关于Python正则表达式的基础教程,讲解了如何使用正则表达式进行文本匹配,以及如何使用BeautifulSoup库进行...

    python爬虫实践_京东商品信息(正则表达式)

    看标题,结果生成excel表格 注: 使用时,header需要更改为自己浏览器中的,附加查找方法 有些运行不了可能是有些库没有安装,在命令行里,打开python的scripts文件夹下使用pip install 库的名字,即可安装

    Python使用中文正则表达式匹配指定中文字符串的方法示例

    标题所涉及的知识点为:Python使用中文正则表达式匹配指定中文字符串的方法示例。在该主题下,我们首先要理解什么是正则表达式及其在Python中的应用。正则表达式是一套规则和符号模式,用于文本的查找、匹配和替换...

    Python正则表达式指南.pdf

    Python正则表达式是Python编程语言中用于处理字符串的强大工具,它使用一套独特的语法和独立的处理引擎。虽然正则表达式本身不是Python的一部分,但Python通过内置的`re`模块提供了对正则表达式的全面支持。这个指南...

    Python正则解析.xmind(思维导图)

    **正则表达式**,又称规则表达式(Regular Expression,在代码中常简写为regex、regexp或RE),正则表达式描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个...

    python re正则匹配网页中图片url地址的方法

    ### Python re正则匹配网页中图片URL地址的方法详解 #### 一、背景介绍 在进行网页数据抓取或处理HTML内容时,经常会遇到需要提取图片URL的情况。Python 的 `re` 模块提供了强大的正则表达式支持,可以帮助我们轻松...

Global site tag (gtag.js) - Google Analytics