Python 从雅虎财经抓取数据

Python 从雅虎财经抓取数据,python,Python,我一直在尝试从雅虎财经获取数据,但每次尝试都会出现以下错误:- Traceback (most recent call last): File "C:\Users\nnarn\PycharmProjects\papaproject\main.py", line 15, in <module> print(str(parsePrice())) File "C:\Users\nnarn\PycharmProjects\papapr

我一直在尝试从雅虎财经获取数据,但每次尝试都会出现以下错误:-

Traceback (most recent call last):   
  File "C:\Users\nnarn\PycharmProjects\papaproject\main.py", line 15, in <module>
    print(str(parsePrice()))   
  File "C:\Users\nnarn\PycharmProjects\papaproject\main.py", line 8, in parsePrice
    soup=bs4.BeautifulSoup(r.text, "xml")   
  File "C:\Users\nnarn\AppData\Local\Programs\Python\Python39\lib\site-packages\bs4\__init__.py", line 243, in __init__
    raise FeatureNotFound(
bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: xml. Do you need to install a parser library?

建议您使用soup=BeautifulSoupr.text“html.parser”,因为您下载的页面内容是html,而不是XML。

只需删除“XML”,您的soup.find也包含错误。首先查找所有跨度,然后从列表中选择所需的跨度:

import bs4
import requests

from bs4 import BeautifulSoup

def parsePrice():
    r=requests.get('https://finance.yahoo.com/quote/FB?p=FB')
    soup=bs4.BeautifulSoup(r.text)
    price=soup.find('div',{'class':'D(ib) Mend(20px)'}).find_all('span')[0].text
    print(price)
    return price

while True:
    print(str(parsePrice()))