Mws*_*cer 8 python beautifulsoup
我是webscraping的新手,似乎有两种方法来收集我正在寻找的所有html数据.
option_1 = soup.find_all('div', class_='p')
option_2 = soup.select('div.p')
Run Code Online (Sandbox Code Playgroud)
我看到option_1返回类'bs4.element.ResultSet'而option_2返回类'list'
我仍然可以使用for循环遍历option_1,那么有什么区别:
您应该在这里找到第一个问题的答案(由评论中的tm-adam链接)。
至于第二个问题我们看一下源码:)
class ResultSet(list):
"""A ResultSet is just a list that keeps track of the SoupStrainer
that created it."""
def __init__(self, source, result=()):
super(ResultSet, self).__init__(result)
self.source = source
def __getattr__(self, key):
raise AttributeError(
"ResultSet object has no attribute '%s'. You're probably treating a list of items like a single item. Did you call find_all() when you meant to call find()?" % key
)
Run Code Online (Sandbox Code Playgroud)
ResultSet
只是list
用于存储find_all()
方法结果的子类。