【问题标题】:Using Python lxml.html how can I find images within link tags?使用 Python lxml.html 如何在链接标签中找到图像?
【发布时间】:2011-05-02 23:01:53
【问题描述】:

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

所以它看起来像这样......

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'))

结果

Anchor Link One: Link One
: Link Two
Anchor Link Three: Link Three

所以我尝试使用 .html_content() 来尝试获取原始 html,然后检查它是否是图像。

嗯..如何检测是否包含在图像中,和/或在那里提取 html....

【问题讨论】:

    标签: python html-parsing lxml


    【解决方案1】:

    只需修改你的 CSS 选择器:

    for img in doc.cssselect('a img'):
    

    您也可以使用 XPATH 表达式:

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

    【讨论】:

    • 如果没有 img 是否也会拾取?
    • 不,根据您的问题,您似乎想要的只是替代文字,没有图像,没有替代文字。
    【解决方案2】:
    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'))
    

    【讨论】:

      猜你喜欢
      • 2014-02-02
      • 2010-11-15
      • 1970-01-01
      • 2020-03-19
      • 2011-10-25
      • 1970-01-01
      • 1970-01-01
      • 2017-03-21
      • 2021-01-12
      相关资源
      最近更新 更多