在python中查找HTML文本中的特殊路径字符串

时间:2016-10-18 11:59:36

标签: python regex expression

我试图在我读取的HTML文件中提取路径。 在这种情况下,我正在寻找的路径是来自谷歌主网站的徽标。

我很确定我定义的正则表达式是正确的,但我想我错过了一些东西。

代码是:

import re
import urllib
a=urllib.urlopen ('https://www.google.co.il/')
Text = a.read(250)
print Text
print '\n\n'
b= re.search (r'\"\/[a-z0-9 ]*',Text)

print format(b.group(0))

我想要的实际文字是:

/images/branding/googleg/1x/googleg_standard_color_128dp.png

如果有人能指出我正确的方向,我真的很感激

2 个答案:

答案 0 :(得分:0)

这可以帮到你:

re.search(r'\"\/.+\"',Text).group(0)

结果:

>>> re.search(r'\"\/.+\"',Text).group(0)
'"/images/branding/googleg/1x/googleg_standard_color_128dp.png"'

答案 1 :(得分:0)

这是我的答案:

import re
import urllib

a=urllib.urlopen ('https://www.google.co.il/')
text = a.read(250)
print text
print '\n\n'
b= re.search (r'\"(\/[a-z0-9_. ]+)+\"',text)


print format(b.group(0))

运行给出:

>>> python stackoverflow.py
<!doctype html><html dir="rtl" itemscope="" itemtype="http://schema.org/WebPage" lang="iw"><head><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><meta content="/images/branding/googleg/1x/googleg_standard_color_128dp.png" itemprop=



"/images/branding/googleg/1x/googleg_standard_color_128dp.png"

正则表达式\"(\/[a-z0-9_. ]+)+\"的解释:首先,在图片的字符串名称中,您会错过._。您需要将这两个添加到方括号中,因为它们出现在路径中。 \/[a-z0-9_. ]+匹配带有/的模式,后跟一些长度至少为1的字符串。(\/[a-z0-9_. ]+)+复制上一个匹配项,以允许多个匹配的路径包含多个文件夹。最后,在开头和结尾添加两个"