首页 > 解决方案 > bs4无法得到具体结果

问题描述

我正在尝试从多次使用的类下的网站获取特定数据。所以我的想法是搜索下一个最大的类,然后再次使用 bs4 来进一步缩小搜索结果。但是,我收到此错误:

AttributeError: ResultSet object has no attribute 'find_all'. You're probably treating a list of elements like a single element. Did you call find_all() when you meant to call find()?

这是我的代码:

import requests
from bs4 import BeautifulSoup

def main():
    responce()

def responce():
    r = requests.get('https://robinhood.com/stocks/WISH')
    soup = BeautifulSoup(r.content, 'html.parser')
    responce = soup.find_all(class_="css-ktio0g""")
    responce = responce.find_all(class_="css-6e9xj2")
    print(responce)

main()

标签: beautifulsoup

解决方案


import requests
from bs4 import BeautifulSoup
from pprint import pp


def main(url):
    r = requests.get(url)
    soup = BeautifulSoup(r.text, 'lxml')
    goal = [x.text for x in soup.select('span.css-ktio0g')]
    pp(goal)


main('https://robinhood.com/stocks/WISH')

输出:

['Piotr Szulczewski',
 '—',
 'San Francisco, California',
 '2010',
 '7.25B',
 '—',
 '—',
 '155.46M',
 '$12.39',
 '$11.44',
 '$11.97',
 '76.70M',
 '$32.85',
 '$7.52',
 '— per share',
 'Expected Aug 11, After Hours',
 'Sign up for a Robinhood Account to buy or sell ContextLogic stock and '
 'options commission-free.']

推荐阅读