Python 用于搜索和获取图像的src的正则表达式

Python 用于搜索和获取图像的src的正则表达式,python,html,regex,Python,Html,Regex,假设我有一个包含以下代码段的html字符串 ... <img class="employee thumb" src="http://localhost/services/employee1.jpg" /> ... 。。。 我想搜索此标记是否可用,如果可用,则获取src url使用正则表达式: >>> import re >>> str = '<img class="employee thumb" src="http://localho

假设我有一个包含以下代码段的html字符串

... <img class="employee thumb" src="http://localhost/services/employee1.jpg" /> ... 
。。。

我想搜索此标记是否可用,如果可用,则获取src url<代码>使用正则表达式:

>>> import re
>>> str =  '<img class="employee thumb" src="http://localhost/services/employee1.jpg" />'
>>> if re.search('img class="employee thumb"', str):
...     print re.findall ( 'src="(.*?)"', s, re.DOTALL)
... 
['http://localhost/services/employee1.jpg']
>>重新导入
>>>str=''
>>>如果重新搜索('img class=“employee thumb”',str):
...     打印re.findall('src=“(.*)”,s,re.DOTALL)
... 
['http://localhost/services/employee1.jpg']
使用lxml:

>>> from lxml import etree
>>> root = etree.fromstring("""
... <html>
...     <img class="employee thumb" src="http://localhost/services/employee1.jpg" />
... </html>
... """)
>>> print root.xpath("//img[@class='employee thumb']/@*")[1]
http://localhost/services/employee1.jpg
来自lxml导入etree的
>>
>>>root=etree.fromstring(“”)
... 
...     
... 
... """)
>>>print root.xpath(“//img[@class='employee thumb']/@*”[1]
http://localhost/services/employee1.jpg

当正则表达式可用时,为什么要使用正则表达式
soup=BeautifulSoup(yourpage)
,然后
image=soup.select('img.employee.thumb')
。也许使用regexp解析html不是最好的方法。这个答案就是:谢谢你的信息。我使用
page=urllib2.urlopen(url)
yourpage=page.read()获取html。然后我就不能像你提到的那样解析html了。有什么想法吗?不过,我不建议这样做。lxml的
lxml
版本没有多大用处;它实际上不会在较大的文档中搜索
img
标记。不,您仍然只测试
root
是否是图像标记。OP有更大的HTML块,不仅仅包含
标记。我认为输入是问题中提到的字符串格式。所以我认为,如果类attrib是“employee thumb”,那么唯一需要考虑的是获取“src”。不,OP的第一句话是假设我有一个html字符串,其中包含以下代码片段,emphasis mine。请注意HTML示例中的
省略号。是的,这就是我要说的,在问题本身中特别提到了它。假设我有一个包含以下代码段的html字符串。