使用Python&;美丽之群

使用Python&;美丽之群,python,web-scraping,beautifulsoup,yahoo-finance,Python,Web Scraping,Beautifulsoup,Yahoo Finance,我正试图使用Python和BeautifulSoup从雅虎金融(Yahoo Finance)那里获取股票价格。但是,我无法获取具有特定“data reactid”属性的标记(请参见屏幕截图)。请帮帮我 Code: def getCurrentPrice(self, stockSymbol): #stockSymbol is : MSFT for Microsoft url = "https://finance.yahoo.com

我正试图使用Python和BeautifulSoup从雅虎金融(Yahoo Finance)那里获取股票价格。但是,我无法获取具有特定“data reactid”属性的标记(请参见屏幕截图)。请帮帮我

Code:
    def getCurrentPrice(self, stockSymbol):
        #stockSymbol is : MSFT for Microsoft
        
        url = "https://finance.yahoo.com/quote/{}".format(stockSymbol)
        source = requests.get(url).text
        soup = BeautifulSoup(source, 'lxml')

        currentPrice = soup.find('span',attrs={"data-reactid": "52"})

        print("{} : {}".format(stockSymbol, currentPrice))

Output:

MSFT : None

#None because the span tag is not being found.

属性
数据reactid
本质上是动态的,因此您无法使用该属性真正找到dom元素。 试试这个:

def getCurrentPrice(self, stockSymbol):
    #stockSymbol is : MSFT for Microsoft

    url = "https://finance.yahoo.com/quote/{}".format(stockSymbol)
    source = requests.get(url).text
    soup = BeautifulSoup(source, 'lxml')

    currentPrice = soup.find('span',attrs={"class": "Trsdu(0.3s)"})

    print("{} : {}".format(stockSymbol, currentPrice.get_text()))

属性
datareactid
本质上是动态的,因此您无法使用该属性真正找到dom元素。 试试这个:

def getCurrentPrice(self, stockSymbol):
    #stockSymbol is : MSFT for Microsoft

    url = "https://finance.yahoo.com/quote/{}".format(stockSymbol)
    source = requests.get(url).text
    soup = BeautifulSoup(source, 'lxml')

    currentPrice = soup.find('span',attrs={"class": "Trsdu(0.3s)"})

    print("{} : {}".format(stockSymbol, currentPrice.get_text()))

数据ID不断变化。当然你会发现它没有被找到。@ManojKumar谢谢!明白了,数据ID一直在变化。当然你会发现它没有被找到。@ManojKumar谢谢!知道了。