2015-07-03 51 views
5

所以我想刮去这个网址的“买入价”整数 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> 

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

在此先感谢

编辑: 我使用Google Chrome工具跟踪的JavaScript流量找到了答案。 显然,即使api.rsbuddy.com不给你任何东西,它使用API​​: https://api.rsbuddy.com/grandExchange?a=guidePrice&i=5502

回答

1

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

只是为了澄清,它本身不是“隐藏”的,它只是不在HTML中。当您执行检查元素时,它会查看由HTML开始的文档以及JavaScript对其进行的任何更改。

+0

我明白了,解释一下,谢谢。那么,如果我更深入地了解JS代码,你认为我能够找到这些价格吗? – seb

+0

嗯,我不认为你会在JS代码中找到价格。假设我是正确的,JS使用的是AJAX,如果你深入挖掘,你应该能够找到他们来自哪个http地址(并且所述地址可以基于项目名称/ id/w/e自动生成)。 – CrazyCasta

+0

谢谢。我请求开发者帮助我。如果有人会知道这是否可能,那将是他们:) – seb

3

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

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

让我知道你是否想要更多的信息,我很乐意提供帮助。