0

我正在编写一个解析脚本,它应该访问 HTML 页面中的“img”标签(我正在使用 Beautiful Soup。)我正在使用 findAll 方法来访问代码中的每个图像,但我还想访问一个额外的一点信息。我想要每个图像的标题,它位于前面的“a”标签中,在 href 属性下。HTML 代码如下所示:

div class="thumbinner" style="width:202px;"><a href="/wiki/File:Edmund-Hillary.web.jpg" class="image">img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/8/8d/Edmund-Hillary.web.jpg/200px-Edmund-Hillary.web.jpg" width="200" height="272" class="thumbimage" srcset="//upload.wikimedia.........

我正在尝试使用漂亮汤中的父/子方法,但出现错误。我的代码看起来像:

images= soup.findAll("img", width=true)#access all image tags
jpegtitles= images.siblings['href']

我想既然“img”标签和“a”标签都是“div”标签的孩子,那么它们可以通过兄弟方法访问。

关于如何访问的任何建议:href="/wiki/File:Edmund-Hillary.web.jpg" ?

4

1 回答 1

0

因为图像标签在<a>标签之后,所以您要查找父级而不是兄弟级:

>>> soup.find('img', width=True).parent['href']
'/wiki/File:Edmund-Hillary.web.jpg'

您的代码的另一个问题是findAll返回一个列表,因此您不能直接调用.siblings它。如果您有多个图像,请使用循环。

于 2013-06-26T02:22:53.600 回答