问题描述
|
我正在从服务中获取一堆html并对其进行稍微解析。
我正在寻找一种方法来获取第一个图像标签的链接。
类似于以下JQuery代码:
var imagelink = $(\'img:first\',Feed.content).attr(\'src\');
但是当然只使用Python / Django(服务器在Google应用引擎上运行)。我宁愿不使用任何其他库,只是为了获得一个简单的链接。
解决方法
您可以使用BeautifulSoup执行此操作:
http://www.crummy.com/software/BeautifulSoup/
这是XML / HTML解析器。因此,您传入原始html,然后可以在其中搜索特定的标记/内容等。
这样的事情应该工作:
tree = BeautifulSoup(raw_html)
img_link = (tree.find(\'img\')[0]).attr[\'src\']
, 这正是我在寻找的东西。实际上,真正的代码是这样的:
tree = BeautifulSoup(raw_html)
img_link = tree.find_all(\'img\')[0].get(\'src\')
很棒!谢谢timmy-omahony
, 如果我再进行html的解析,则可能会研究建议的一种库。但是现在我已经通过以下方式解决了这个问题:
startImgPos = post.find(\'<img\',len(post)) + 4
if(startImgPos > -1):
endImgPos = post.find(\'>\',startImgPos,len(post))
imageTag = post[startImgPos:endImgPos]
startSrcPos = imageTag.find(\'src=\"\',len(post)) +5
endSrcPos = imageTag.find(\'\"\',startSrcPos,len(post))
linkTag = imageTag[startSrcPos:endSrcPos]
r[\'linktag\'] = linkTag
我稍后会对此进行改进,但现在可以解决问题。随意对以上代码提出任何其他想法/改进。