我正在浏览HTML页面,我想提取img srcs和a hrefs。
在特定网站上,所有这些都用双引号封装。
我尝试了各种各样的regexp但没有成功。假设双引号内的字符为[ - \ w /](可打印字符[a-zA-Z \ d-_]和/和。)
在python中:
re.search(r'img\s+src="(?P<src>[\w-/]+_"', line)
不返回任何内容,但
re.search(r'img\s+src="(?P[-\w[/]]+)"', line)
返回很多(即,不会停在“)。
我需要帮助创建正确的正则表达式。提前谢谢!
答案 0 :(得分:6)
答案 1 :(得分:5)
In [1]: import lxml.html
In [2]: doc = lxml.html.parse('http://www.google.com/search?q=kittens&tbm=isch')
In [3]: doc.xpath('//img/@src')
Out[3]:
['/images/nav_logo_hp2.png',
'http://t1.gstatic.com/images?q=tbn:ANd9GcQhajNZimPGLw9iTfzrAF_HV5UogY-KGep5WYgw-VHZ15oaAwGquNb5Q2I',
'http://t2.gstatic.com/images?q=tbn:ANd9GcS1LgVIlDgoIfNzwU4xBz9fL32ZJjZU26aB4aynRsEcz2VuXmjCtvxUonM',
'http://t1.gstatic.com/images?q=tbn:ANd9GcRgouJt5Moe8uTnDPUFTo4csZOcBtEDA_B7WdRPe8pdZroR5QB2q_-LT59G',
[...]
]
答案 2 :(得分:2)
在"([^"]+)"
引号内查找内容的好方法。所以你搜索任何字符,但引号之间的引号。
有关创建正则表达式的帮助,我强烈建议使用Expresso(http://www.ultrapico.com/Expresso.htm)