我需要帮助处理Python中lxml提取meta标签值的语句

1 投票
1 回答
706 浏览
提问于 2025-04-16 10:18

我需要帮助来修正这个lxml的语句,以提取以下内容:http://www.etc../1tru.jpg 这个链接,它位于http://www.yfrog.com/9d1truj的头部部分。

#This doesn't work!

# <link rel="image_src" href="http://img337.yfrog.com/img337/5023/1tru.jpg" />
def extract_imageurl(self, doc):
    try:
        self.url, = doc.xpath('//head//link[@rel="image_src"][1]/@href')
    except ValueError:
        self.url = "Error"

谢谢!

1 个回答

1
In [32]: doc.xpath('//head/link[@rel="image_src"]/@href')[0]
Out[32]: 'http://img337.yfrog.com/img337/5023/1tru.jpg'
In [25]: doc.xpath('//head/link')
Out[25]: [<Element link at 9c94c5c>, <Element link at 9c94b6c>]
In [29]: doc.xpath('//head/link[@rel="image_src"]')[0]
Out[29]: <Element link at 9c94c5c>
import lxml.html as lh
import urllib2

url=r'http://www.yfrog.com/9d1truj'
doc=lh.parse(urllib2.urlopen(url))
link=doc.xpath('//head/link[@rel="image_src"]/@href')[0]
print(link)
# http://img337.yfrog.com/img337/5023/1tru.jpg

注意,xpath 返回的是一个节点列表:

一旦你指定了 [@rel="image_src"],列表中就只有一个节点了。你可以在 xpath 调用之后,用 [0] 来获取这个节点。


撰写回答