【发布时间】:2014-09-19 12:36:37
【问题描述】:
我正在使用bs4 并想提取指定图像的href。
例如在我的 html 代码中:
<div style="text-align:center;"><a href="page/folder1/image.jpg" target="_blank"><img src="page_files/image.jpg" alt="Picture" border="0" width="150" height="150"></a></div>
</div>
我有我的图像src (page_files/image.jpg) 并想提取相应的href,所以在这个例子中它是:page/folder1/image.jpg。我试图使用find_previous method,但是我在提取href 内容时遇到了一个小问题:
soup = bs4.BeautifulSoup(page)
for img in soup('img'):
imgLink = img.find_previous("a")
这会返回整个标签:
<a href="Here_is_link"><img alt="Tumblr" border="0" src="Here_is_source"/></a>
但我不能接受href的内容,因为当我尝试制作时:
imgLink = img.find_previous("a")['href']
我有一个错误。
同样的事情是当我尝试使用find_parent like
imgLink = img.find_parent("a")['href']
我该如何解决这个问题?还有什么更好:find_previous() 或 find_parent()?
【问题讨论】:
-
你得到什么错误?您的
img.find_parent('a')应该正常工作。也许不是所有的图片都包含在相同的<a>标签中? -
@MartijnPieters 我想你误解了我的问题。 `img.find_parent('a')` 工作正常,但它返回:
<a href="Here_is_link"><img alt="Tumblr" border="0" src="Here_is_source"/></a>但我只想提取href内容,所以这里是:Here_is_link。而imgLink = img.find_parent("a")['href']行返回错误:TypeError: 'NoneType' object has no attribute '__getitem__' -
这是因为您正在为 所有 图像执行此操作,其中一些图像没有 具有
<a>标记父级。然后,find_parent()搜索将返回None。
标签: python python-2.7 beautifulsoup