2015-07-03 49 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在瀏覽器中執行,並且您可以從中獲取價格。

讓我知道你是否想要更多的信息,我很樂意提供幫助。