抓取时 html 源代码中的隐藏部分 (python)

Hidden parts in html source code while scraping (python)

所以我想从这个 url 中抓取 'Buy price' 整数: https://rsbuddy.com/exchange?id=5502

但是当我查看源代码时,我无法达到那些价格。 BeautifulSoup 刮板也没有。这是 BeautifulSoup:

的输出
<div class="col-md-7" id="buy-price">
    ---
</div>

但是当我 'inspect element' 使用 chrome 时,我实际上 能够看到那个价格:

<div id="buy-price" class="col-md-7">29,990 gp</div>

为什么那部分代码是 'hidden'?仅仅是因为他们不想让人们从他们的网站上抓取信息吗? 有办法解决这个问题吗?

提前致谢

编辑: 我通过使用 chrome 工具跟踪 javascript 流量找到了答案。 显然即使 api.rsbuddy.com 没有给你任何东西,它确实使用了 api: https://api.rsbuddy.com/grandExchange?a=guidePrice&i=5502

价格大概是由 JavaScript 放在那里的。他们可能正在使用某种 AJAX 来获取价格。您必须调查他们的 JavaScript 才能获得您想要的数据。

澄清一下,它本身并不是 "hidden",它只是不在 HTML 中。当您检查元素时,它会查看由 HTML 开始的文档以及 JavaScript 对其所做的任何更改。

如果页面的某些部分是通过 JavaScript 插入的,您最好的选择是使用类似 selenium with PhantomJS 的驱动程序。

Python 绑定非常容易使用,这将允许 JavaScript 在浏览器中执行,您可以从那里获取价格。

如果您需要更多信息,请告诉我,我们很乐意提供帮助。