我是webscraping的新手,似乎有两种方法来收集我正在寻找的所有html数据。
option_1 = soup.find_all('div', class_='p')
option_2 = soup.select('div.p')
我看到option_1返回类'bs4.element.ResultSet'而option_2返回类'list'
我仍然可以使用for循环遍历option_1,所以有什么区别:
答案 0 :(得分:2)
您应该找到第一个问题的答案here(在评论中通过t-m-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
)
ResultSet
只是list
的子类,用于存储find_all()
方法的结果。