我正在使用BeautifulSoup编写一个解析脚本,在这个脚本中,我搜索页面中的所有img标记,并且只想抓取具有特定宽度的图片。
下面是一个标签的例子:
<img
alt=""
src="//upload.wikimedia.org/wikipedia/en/thumb/a/a9/Example.jpg/111px-Example.jpg"
width="111"
height="120"
/>问题是并不是所有的img标记都有width属性。我只想访问具有width属性的img标记。
到目前为止,我有一些类似的东西:
images= soup.findAll("img")
listimages= []
for img in images:
if img['width']!==None:
listimages.append(img)这似乎不起作用。似乎缺少width属性并不会产生NoneType。如果不是None,那会怎样呢?
发布于 2013-06-20 22:54:42
[img for img in soup.findAll("img") if "width" in img.attrs]发布于 2013-06-20 23:03:37
BeautifulSoup提供了一种调用findAll()来处理此问题的方法:
soup.findAll("img", width=True)从上面的链接:
特定值True和None具有特殊的意义。True匹配给定属性具有任意值的标记,而None匹配没有给定属性值的标记。下面是一些例子:
soup.findAll(align=True) #这是第一段,#这是第二段。#u‘’html‘,u’‘head’,u‘’title‘,u’‘body’,u'b',u'b'
https://stackoverflow.com/questions/17216810
复制相似问题