Python 用于解析HTML IMG的Regexp

Python 用于解析HTML IMG的Regexp,python,regex,Python,Regex,我正在浏览一个HTML页面,我想提取img SRC和a HREF 在特定的站点上,它们都封装在双引号中 我尝试了各种各样的regexp,但都没有成功。假设双引号内的字符将是[-\w/]个可打印字符[a-zA-Z\d-\]和/和 在python中: re.search(r'img\s+src="(?P<src>[\w-/]+_"', line) 将Way返回到多,即,不停在 我需要帮助创建正确的regexp。提前谢谢 我需要帮助创建正确的regexp 不,您需要帮助找到正确的工具 试

我正在浏览一个HTML页面,我想提取img SRC和a HREF

在特定的站点上,它们都封装在双引号中

我尝试了各种各样的regexp,但都没有成功。假设双引号内的字符将是[-\w/]个可打印字符[a-zA-Z\d-\]和/和

在python中:

re.search(r'img\s+src="(?P<src>[\w-/]+_"', line)
将Way返回到多,即,不停在

我需要帮助创建正确的regexp。提前谢谢

我需要帮助创建正确的regexp

不,您需要帮助找到正确的工具

试试看


如果你坚持使用正则表达式——我建议你不要这样做——试着将贪婪+改为非贪婪+?。

这是一个在引号内查找内容的好方法[^]+。因此,您可以搜索除引号之间的引号以外的任何字符


要获得创建正则表达式的帮助,我强烈推荐Expresso,这里有一个比使用正则表达式更好的示例,使用优秀的库和


强制性:是的,不能用正则表达式解析html,但你可以在其中找到某些东西,以及快速脚本等。它可能是正确的工具。@Daenyth,是的,我知道。我已经指导过很多人学习常规语法和上下文无关语法的泵引理。我试图找到的regexp只是标记中的一个字段,它肯定是正则的。@B.VB:不管怎样,不使用regex要容易得多。请看我的答案。@B.VB.,不,因为这可能在注释->中。或块中的字符串。或者任何其他一些正则表达式无法处理的奇怪和意外情况。
re.search(r'img\s+src="(?P[-\w[/]]+)"', line)
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',
 [...]
]