首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HTML解析中的标签

HTML解析中的标签
EN

Stack Overflow用户
提问于 2013-06-20 22:48:36
回答 2查看 134关注 0票数 2

我正在使用BeautifulSoup编写一个解析脚本,在这个脚本中,我搜索页面中的所有img标记,并且只想抓取具有特定宽度的图片。

下面是一个标签的例子:

代码语言:javascript
运行
复制
<img 
  alt="" 
  src="//upload.wikimedia.org/wikipedia/en/thumb/a/a9/Example.jpg/111px-Example.jpg"
  width="111"
  height="120"
/>

问题是并不是所有的img标记都有width属性。我只想访问具有width属性的img标记。

到目前为止,我有一些类似的东西:

代码语言:javascript
运行
复制
images= soup.findAll("img")
listimages= []
for img in images:
    if img['width']!==None:
       listimages.append(img)

这似乎不起作用。似乎缺少width属性并不会产生NoneType。如果不是None,那会怎样呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-20 22:54:42

代码语言:javascript
运行
复制
[img for img in soup.findAll("img") if "width" in img.attrs]
票数 -1
EN

Stack Overflow用户

发布于 2013-06-20 23:03:37

BeautifulSoup提供了一种调用findAll()来处理此问题的方法:

代码语言:javascript
运行
复制
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'

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17216810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档