我想要獲得一些使用html爬行的經驗,所以我想看看我是否可以獲取以下網站的一些值:http://www.iex.nl/Aandeel-Koers/11890/Royal-Imtech/koers.aspx如何讓python request.get等幾秒鐘?
此網站顯示imtech股票的價格。 如果你看看這個網站,你會發現有一個數字以粗體顯示,這是股票的價格。
正如你可能看到的那樣,這個價格變化了,沒關係。在這個時候,我只想在我運行腳本的時候獲得價值。
,但如果你重新加載頁面,你會發現它是如何首先顯示「laatste koers」和1秒的延遲後顯示「實時」
正如你可能現在已經想通了,我對「實時」價值感興趣。
這是我的問題,我如何得到這個值,我試過time.sleep(2)在不同的地方。我已經嘗試了請求超時。兩者都不起作用。
我該如何解決這個問題?
from lxml import html
import requests
pagina = 'http://www.iex.nl/Aandeel-Koers/11890/Royal-Imtech/koers.aspx'
page = requests.get(pagina)
tree = html.fromstring(page.text)
koers = tree.xpath('//span[@class="RealtimeLabel"]/text()')
prices = tree.xpath('//span[@id="ctl00_ctl00_Content_LeftContent_PriceDetails_lblLastPrice"]/text()')
print koers[0], pagina.split("/")[5], prices[0]
我得到的輸出喜歡這個
Laatste koers Royal-Imtech 0,093
雖然我想這樣
Realtime Royal-Imtech 0,093
我懷疑「Laatste koers」被更改爲「實時」的頁面上的一些JavaScript,在這種情況下我們看到的網頁是什麼樣子的腳本執行後,沒有簡單的方法。我不認爲'request'完全執行用戶端腳本。 – Kevin 2014-10-09 14:00:57
它通過javascript更改是的,但「Laatste koers」也通過javascript插入 – zazga 2014-10-09 14:04:45
@zazga:'request'和'lxml'永遠不會執行頁面中的JS;你必須對這種行爲進行逆向工程並自己動手,*或者*使用像Selenium這樣的東西來驅動一個實際執行JavaScript的瀏覽器。 – 2014-10-09 14:12:49