有人可以解释一下findAll
在BeautifulSoup中的作用吗?
我怀疑是这一行:A = soup.findAll('strong',{'class':'name fn'})
。它看起来像找到一些符合某些标准的字符。
但网页的原始代码就像...... <STRONG class="name fn">iPod nano 16GB</STRONG>
......
('strong',{'class':'name fn'})
如何选择它?感谢。
原始Python代码
from bs4 import BeautifulSoup
import urllib2
import re
url="http://m.harveynorman.com.au/ipods-audio-music/ipods/ipods"
page=urllib2.urlopen(url)
soup = BeautifulSoup(page.read())
A = soup.findAll('strong',{'class':'name fn'})
for B in A:
print B.renderContents()
答案 0 :(得分:2)
来自文档:Beautifulsoup Docs
Beautiful Soup提供了许多遍历(遍历)解析树的方法,收集了与您指定的条件匹配的Tags
和NavigableStrings
。
来自基本查找方法:findAll(name, attrs, recursive, text, limit, **kwargs)
findAll
方法从给定点开始遍历树,并查找与您给出的条件匹配的所有Tag
和NavigableString
对象。 findall
方法的签名是:
findAll(name=None, attrs={}, recursive=True, text=None, limit=None, **kwargs)
name
参数可用于传递:
关键字参数对标记的属性施加限制。
搜索具有特定CSS类的标记非常有用,但CSS属性的名称class
也是Python保留字。
您可以使用soup.find("tagName", { "class" : "cssClass" })
搜索CSS类,就像您提供的代码一样),但这是一个常见操作的代码。相反,您可以传递attrs
的字符串而不是字典。
该文档还有其他示例可以帮助您理解。