我对网络抓取和Python还很陌生。我正在尝试制作一个脚本来获取最后的交易价格但当我用 python 请求时,一些内容似乎丢失了。我之前制作过从其他网站成功获取数据的脚本,但我似乎无法让我的代码在该网站上运行。
到目前为止,这是我的代码:
from bs4 import BeautifulSoup
import requests
r = requests.get("http://finra-markets.morningstar.com/BondCenter/BondDetail.jsp?symbol=NFLX4333665&ticker=C647273")
c = r.content
soup = BeautifulSoup(c, "html.parser")
all = soup.find_all("div", {"class": "gr_row_a5"})
print(soup)
当我运行这个时,大多数重要数据都丢失了。
任何帮助将非常感激。
有些网页使用Javascript填充数据,看起来是页面内容的内容实际上并不是Beautiful Soup正在处理的HTML。这是其中一页。
这很令人困惑,因为如果您使用 Safari 或 Chrome 中的 Web 开发人员工具检查显示的页面,您会发现已渲染到 DOM 中的 HTML。然而,如果你查看页面源代码,你根本找不到它。
所以对于这个页面,你无法用Beautiful Soup解析出数据。一种替代方案是建立一个以更直接的方式为您提供数据的网站。另一种可能是尝试requests-html https://html.python-requests.org库,它可以运行 Javascript,然后您可以从渲染的 HTML 中抓取数据。 (注:我从未尝试过requests-html
我自己,并且在以这种方式运行 Javascript 时应该小心,但这是一种看似合理的方式。)还有一些项目,人们使用 Selenium 或类似的东西作为获取 HTML 的方法。但requests-html
看起来是最简单的尝试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)