我使用 urllib2.urlopen 来获取此类网站的源代码。我读取了字节,并使用beautifulsoup 将代码标记为applet。此代码包括以下行:
<param name="G_00" value="espacio='E1' tipo='macro' expresión='dinamica/resorte'">
我需要捕获代码中包含在带有tipo="macro"的值中的所有 "expresión=" 值(特别是dinamica/resorte和dinamica/masa)。
使用beautifulsoup,我将这些行识别为标签,只有带有tipo='macro'的标签,我想简短一些,现在我寻找expresión=的右侧 :
key_macro = ['expresión=', 'expresion=', 'expresión='....] # yes, a problem, it could be this way
for y in key_macro:
if string.find(tag, y) != -1:
# sometimes -sorry- macros are in txt format:
mexpression = r"%s'([\w\./]+)'" % y
mpatron = re.compile(mexpression)
mresult = mpatron.search(tag['value'])
if mresult: # 1
macroslist.append(mresult.group(1))
# sometimes without extension
wexpression = r"%s'([\w/]+)'" % y
wpatron = re.compile(wexpression)
wresult = wpatron.search(tag['value'])
if wresult: # 2
macroslist.append(wresult.group())
问题:使用#1我得到.txt文件(如果存在)-我可以保证-但是使用#2(我寻找单词/单词)我没有找到像dinamica/resorte这样的东西,wresult总是失败,我需要捕获这些值。
我的正则表达式不好吗?所有的问题是如何用正则表达式表示单词/单词?
我尝试使用 beautifulsoup 进行搜索,但 'macro' 是 INSIDE 值,我不知道如何捕获这个标签,无论如何 re + search 似乎做得很好(......而右侧是:dinamica/resorte. txt 例如,然后 # 1 它可以工作)但没有扩展名。
谢谢你的时间。