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

时间:2015-07-03 15:00:05

标签: python html screen-scraping hidden

所以我想从这个网址中删除'买入价'整数: https://rsbuddy.com/exchange?id=5502

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

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

但是当我'使用chrome检查元素'时,我实际上能够看到这个价格:

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

为什么代码的那部分'隐藏'?是不是因为他们不希望别人从他们的网站上刮掉? 有办法解决这个问题吗?

提前致谢

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

2 个答案:

答案 0 :(得分:3)

如果页面的某些部分是通过JavaScript插入的,那么最好的方法是使用seleniumPhantomJS之类的内容作为驱动程序。

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

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

答案 1 :(得分:1)

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

只是为了澄清,它不是&#34;隐藏&#34;本身,它只是不在HTML中。当你检查元素时,它会查看由HTML开始的文档以及JavaScript对它所做的任何更改。