2015-09-17 32 views
1

我需要從這個網站我該如何讓python等到一個網頁加載一些我試圖獲取的數據?

http://www.preciodolar.com/

但我需要的數據得到一些數字,需要一點時間來加載和顯示「等待」的消息,直到它已完全載入。

我使用查找所有和一些正則表達式來獲取我需要的數據,但是當我執行時,python給了我在數據加載之前出現的「等待」消息。

有沒有辦法讓python'等待',直到所有數據加載? 我的代碼看起來像這樣,

import urllib.request 
from re import findall 

def divisas(): 

pag = urllib.request.urlopen('http://www.preciodolar.com/') 
html = str(pag.read()) 
brasil = findall('<td class="usdbrl_buy">(.*?)</td>',html) 
return brasil 
+1

你應該真的在使用[beautifulsoup](http://www.crummy.com/software/BeautifulSoup/)。 – IanAuld

+0

您應該使用[selenium](http://www.seleniumhq.org/) –

回答

0

這是因爲頁面是用JavaScript生成。您將獲得完整的HTML,但JavaScript會處理更改DOM並顯示信息。 你有兩種選擇:

  1. 嘗試並解釋JavaScript(不容易)。有很多questions about this in stack overflow already
  2. 找到頁面使用AJAX打開的URL以獲取實際數據並使用它。

這真的只是取決於你需要的頁面。它看起來像你試圖解析數據,所以第二個選項允許你發出一個請求來獲取原始數據。

相關問題