我从服务中获取一堆html并稍微解析它。 我正在寻找一种方法来抓取第一个图像标签中的链接。使用Python/Django从html获取第一张图片
也有类似这样的jQuery代码:
var imagelink = $('img:first', feed.content).attr('src');
当然,但只使用Python的/ Django的(服务器上的谷歌应用程序引擎运行)。我宁愿不使用任何其他库,只是为了获取一个简单的链接。
我从服务中获取一堆html并稍微解析它。 我正在寻找一种方法来抓取第一个图像标签中的链接。使用Python/Django从html获取第一张图片
也有类似这样的jQuery代码:
var imagelink = $('img:first', feed.content).attr('src');
当然,但只使用Python的/ Django的(服务器上的谷歌应用程序引擎运行)。我宁愿不使用任何其他库,只是为了获取一个简单的链接。
如果我做任何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
我会稍后改进,但现在它的确有窍门。随意对上述代码提出更多建议/改进建议。
您可以使用BeautifulSoup来做到这一点:
http://www.crummy.com/software/BeautifulSoup/
这是一个XML/HTML解析器。所以,你在原始的HTML传递,然后你可以搜索其特定标签/ ATTRS等
这样的事情应该工作:
tree = BeautifulSoup(raw_html)
img_link = (tree.find('img')[0]).attr['src']
http://lxml.de/elementsoup.html – 2011-06-01 00:06:25
很高兴知道。既然它只是一个链接(src),我正在寻找一种没有图书馆的方式。目前我的python技能并不是很棒,但是现在正在学习... – Zammbi 2011-06-01 02:01:31
尽管它只是用于文件中的一个链接,但还是有很多HTML需要解析。您可以尝试使用正则表达式来查找的第一个实例,但您可能会发现BeautifulSoup方法最简单 – 2011-06-01 02:24:45
这正是我正在寻找的。其实真正的代码是这样的:
tree = BeautifulSoup(raw_html)
img_link = tree.find_all('img')[0].get('src')
很好用!谢谢timmy-omahony
不知道为什么我自己的答案被排名下来。这正是我当时所期待的。一个简单的答案找到一个IMG没有使用库。 – Zammbi 2015-10-21 20:29:48