抓取时 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 在浏览器中执行,您可以从那里获取价格。
如果您需要更多信息,请告诉我,我们很乐意提供帮助。
所以我想从这个 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 在浏览器中执行,您可以从那里获取价格。
如果您需要更多信息,请告诉我,我们很乐意提供帮助。