我使用urllib2.urlopen获取网站的源代码,如this。 我读的字节,我得到的代码标签为使用美丽的小程序。 此代码包含线为:beautifulsoup vs re和regext搜索
<param name="G_00" value="espacio='E1' tipo='macro' expresión='dinamica/resorte'">
我需要捕获所有的“expresión=”值中包含的值与TIPO =“宏”(dinamica/resorte和dinamica代码/ masa)。
随着beautifulsoup我确定这几样行作为标签,才用TIPO =“宏观”很好,我想简单地说,现在我找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进行搜索,但'宏'是INSIDE值,我不知道如何捕获这个标签,无论如何,重新搜索似乎做得很好(...而右侧是:例如dinamica/resorte.txt,然后#1它的工作),但不扩展。
谢谢你的时间。
JA !,第二个想法(寻找(P [a-zA-Z./]+)转换为Unicode?赞助人和标签以前似乎完美地工作!对不起,我的不好的解释,并感谢你的努力进行。是的,正则表达式头痛。 –
Antonio
2012-04-24 16:34:40