一个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()查了资料半天都没有写出来,求各位给个可用的代码

3个回答

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

给你个亲测可用的

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]

题主也可以尝试xpath

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!