2 fourbigallsky fourbigallsky 于 2016.04.18 16:17 提问

一个python正则表达式匹配问题 3C

def getHtml(url):
page = urllib.urlopen(url)
html = page.read()
return html

def getDest(html):
//some code
return

html = getHtml("http://www.weather.com.cn/weather/101280101.shtml")
print getDest(html)

我想通过上面的代码抓取html里的以下数据,并输出到控制台,主要是天气和温度

图片说明

因为之前没学过python,函数getDest()查了资料半天都没有写出来,求各位给个可用的代码

4个回答

oyljerry
oyljerry   Ds   Rxr 2016.04.18 16:20

你可以先用字符串查找来找到你关心的数据, 正则只是另一种语法。

CSDNXIAON
CSDNXIAON   2016.04.18 17:07

Python中正则表达式对中文的匹配问题
Python中正则表达式对中文的匹配问题
正则表达式匹配问题
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

wangxin6034
wangxin6034   2016.05.03 23:33

给你个亲测可用的

import urllib
import re

def getHtml(url):
    page = urllib.urlopen(url)
    html = page.read()
    return html

def getDest(html):
    return re.findall(r'<h1>(?P<date_str>[^<]*)</h1>.*?<p title="[^"]*" class="wea">(?P<weather>[^<]*)</p>.*?<i>(?P<temperature>\d+[^<]+)</i>', html, re.S)

for each in getDest(getHtml("http://www.weather.com.cn/weather/101280101.shtml")):
    print each[0], each[1], each[2]
sinat_30665603
sinat_30665603   2016.06.15 15:05

题主也可以尝试xpath

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!