使用Python lxml.html如何在链接标记中找到图像?

使用Python lxml.html如何在链接标记中找到图像?,python,html-parsing,lxml,Python,Html Parsing,Lxml,我使用lxml.html解析一些hmtl来获取链接,但是当它点击包含图像的链接时,它只返回空白,它真正想要的是能够检测它是否是图像,然后尝试返回图像alt文本 所以看起来像这样 from lxml.html import parse, fromstring doc = fromstring('<a href="Link One">Anchor Link One</a><br /><a href="Link Two"<img src="Image

我使用lxml.html解析一些hmtl来获取链接,但是当它点击包含图像的链接时,它只返回空白,它真正想要的是能够检测它是否是图像,然后尝试返回图像alt文本

所以看起来像这样

from lxml.html import parse, fromstring

doc = fromstring('<a href="Link One">Anchor Link One</a><br /><a href="Link Two"<img src="Image Link Two" alt="Alt Image" /></a><br /><a href="Link Three">Anchor Link Three</a><br />')
for link in doc.cssselect('a'):
    print '%s: %s' % (link.text_content(), link.get('href'))
因此,我尝试使用.html_content()获取原始html,然后检查这是否是图像


嗯。。如何检测是否包装在图像中,和/或从图像中拉出html…

只需修改css选择器即可:

for img in doc.cssselect('a img'):
还可以使用XPATH表达式:

for img in doc.xpath('a//img'):

如果没有img,这也会发生吗?不,根据你的问题,你想要的似乎只是alt文本,没有图像,没有alt文本。
for img in doc.xpath('a//img'):
for link in doc.xpath('a'):
    img = link.find('img')
    if img is not None:
        print '%s: %s' % (img.get('alt'), link.get('href'))
    else:
        print '%s: %s' % (link.text_content(), link.get('href'))