【发布时间】:2011-07-01 19:27:09
【问题描述】:
我试图改变:-
import urllib2 as urllib
... ...
file2 = urllib.urlopen(url2)
... ...
for line in file2:
indexfrom2 = line.find('Mean Temperature')
if indexfrom2 > -1:
nxtLn = file2.next()
nextLine = file2.next()
indexfrom21 = nextLine.find('"nobr"')
if indexfrom21 > -1:
indexto21 = nextLine.find('</span> °C</span>',indexfrom21)
code2 = nextLine[indexfrom21+23:indexto21]
print code2
让它看起来像:-
class (...)
def ....
Temperature = parse( file2, '<span>Mean Temperature</span></td>', '<b>' )
但我不知道该怎么做。我要解析的上述代码集是针对不同值重复的,我想使用解析函数使其保持简短,以便它形成一个集合或循环,我不必一次又一次地重复所有代码。 [对于每个值(如平均温度、最高温度、湿度、压力等),代码在我的脚本上重复,看起来有点不专业]。
【问题讨论】:
-
我个人会使用正则表达式来完成这项任务。
-
你的“理想”版本中的
'<b>'到底是什么。这在原始代码中没有…… -
那 °C 和 是 html 代码上被索引的值,因为我正在获取这两个值之间的变量,该变量位于html 代码(用 find 搜索)。使用它,我使用解析提取了一些值。这是一个通用的方法。现在我需要使用以下方法使其看起来更专业:- Temperature = parse(file2, 'Mean Temperature', '' )
-
原始代码不包含
'<b>',因此很难确定什么映射到什么。如果您只是保持一致并插入原始代码引用的任何值,那会更容易。 -
@Chris:- 感谢更新,好吧,我是 python 新手,真的很新。我是新来的网络帮助,所以不知道我应该问什么,不问什么。但是您的反馈对 niw 有所帮助 :)。好的,网址是:-wunderground.com/history/airport/EGPH/2010/6/30/…