【发布时间】:2020-06-13 03:16:30
【问题描述】:
我正在尝试从 Yahoo Finance 中获取多个报价,而不仅仅是一次。我感兴趣的只是获取股票价格。我已经搜索了 Beautiful Soup 提供的 html,但我找不到正确的标签来获取价格,甚至在 HTML 中也找不到价格。谁能给我 Beautifulsoup 命令用于获取股票表?
这是我用来测试的 URL。 https://finance.yahoo.com/quotes/AAPL,WYNN,PCB,AMZN,USAK/view/v1
【问题讨论】:
-
可能页面使用 JavaScript 添加元素,但
requests/Beautifulsoup无法运行 JavaScript,您可能需要Selenium来控制可以运行 JavaScript 的 Web 浏览器。但首先你应该检查雅虎金融是否没有 API,并且应该有特殊的 Python 模块来获取数据而无需抓取。 -
查看模块 yahoo-finance 和 yfinance
-
感谢您的回复。我之前尝试过 yahoo-finanace 和 yfinance,但它们没有提供一种方法(至少我还没有找到一种方法)来简单地获取多个符号的当前价格。一次调用一个符号需要很长时间。这就是为什么我想我会尝试刮。如果无法完成,请再次感谢您的回复。
-
yahoofinancials 可以做
YahooFinancials(['AAPL','WYNN','PCB','AMZN','USAK'])但它需要一些时间 - 可能它会在单独的请求中获取所有数据。当我在 Chrome/Firefox 中使用 DevTools 检查链接中页面上使用的请求时,我看到它还为每个符号发送单独的请求。但也许它可以访问更快的计算机query1.finance.yahoo.com/v7/finance/… -
直接使用来自query1.finance.yahoo.com/v7/finance/… 的数据应该比抓取页面更快 - 但可能它可能需要一些其他信息(即 cookie),例如在真正的网络浏览器中。
标签: python beautifulsoup screen-scraping