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