如何使用BeautillSoup从雅虎获取多个报价

2024-04-19 09:43:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图从雅虎财经(Yahoo Finance)获取多个报价,而不是一次一个。我感兴趣的是了解股票价格。我已经搜索了Beautiful Soup提供的html,但我找不到用于获取价格的正确标记,甚至在html中也找不到价格。有人能给我一个Beautifulsoup命令来获取股票表吗?
这是我用来测试的URLhttps://finance.yahoo.com/quotes/AAPL,WYNN,PCB,AMZN,USAK/view/v1


Tags: 标记命令html价格yahoo感兴趣报价股票
1条回答
网友
1楼 · 发布于 2024-04-19 09:43:00

当我在页面中使用Chrome/Firefox中的DevTools

https://finance.yahoo.com/quotes/AAPL,WYNN,PCB,AMZN,USAK/view/v1 

然后我看到它对每个符号发送单独的请求,并使用URL,如

https://query1.finance.yahoo.com/v7/finance/spark?symbols=AAPL&range=1d&interval=5m&indicators=close&includeTimestamps=false&includePrePost=false&corsDomain=finance.yahoo.com&.tsrc=finance

python也是如此,工作速度很快

我只是担心它可能需要一些其他元素,例如cookies,以防止在多次请求后被阻塞

import requests

for symbol in ['AAPL', 'WYNN', 'PCB', 'AMZN', 'USAK']:
    params = {
        'symbols': symbol,
        'range': '1d',
        'interval': '5m',
        'indicators': 'close',
        'includeTimestamps': 'false',
        'includePrePost': 'false',
        'corsDomain': 'finance.yahoo.com',
        '.tsrc': 'finance'
    }

    url = 'https://query1.finance.yahoo.com/v7/finance/spark'

    r = requests.get(url, params=params)
    data = r.json()

    print(' -', symbol, ' -')
    print(data['spark']['result'][0]['response'][0]['indicators']['quote'][0]['close'])

相关问题 更多 >