我试图在我读取的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
如果有人能指出我正确的方向,我真的很感激
答案 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_. ]+)+
复制上一个匹配项,以允许多个匹配的路径包含多个文件夹。最后,在开头和结尾添加两个"
。