我怎样才能让 python 等到网页加载了一些我想要获取的数据?

How can I make python wait untill a webpage loads some data I'm trying to get?

我需要从这个网站获取一些号码

http://www.preciodolar.com/

但是我需要的数据需要一些时间来加载并显示 'wait' 消息,直到它完全加载。

我使用 find all 和一些正则表达式来获取我需要的数据,但是当我执行时,python 给我在数据加载之前出现的 'wait' 消息。

有没有办法让 python 'wait' 直到所有数据加载完毕? 我的代码看起来像这样,

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

这是因为页面是用JavaScript生成的。您将获得完整的 HTML,但 JavaScript 处理更改 DOM 并显示信息。 您有两个选择:

  1. 尝试解释 JavaScript(不容易)。有很多questions about this in stack overflow already.
  2. 找到 URL 页面正在使用 AJAX 获取实际数据并使用它。

这真的取决于您需要该页面的目的。看起来您正在尝试解析数据,因此第二个选项允许您发出单个请求以获取原始数据。

您应该找到 ajax 请求或 jsonp 请求。 在这种情况下,它是 jsonp:http://api.preciodolar.com/api/crossdata.php?callback=jQuery1112024555979575961828_1442466073980&_=1442466073981