我正在尝试从网站中提取数字数据。我尝试使用简单的Web scraper来检索数据:
from mechanize import Browser
from bs4 import BeautifulSoup
mech = Browser()
url = "http://www.oanda.com/currency/live-exchange-rates/"
page = mech.open(url)
html = page.read()
soup = BeautifulSoup(html)
data1 = soup.find(id='EUR_USD-b-int')
print data1
这种方法通常会提供来自网站的数据行,包括我想要提取的元素的内容。然而,它提供了除了内容之外的所有内容,这是我需要的部分。我尝试过.contents并返回[]。我也试过.child并返回'none'。有谁知道另一种可行的方法。我查看了漂亮的汤文档,但我似乎无法找到解决方案?
答案 0 :(得分:1)
通过向
发出请求,使用Javascript更新此页面上的值GET http://www.oanda.com/lfr/rates_lrrr?tstamp=1392757175089&lrrr_inverts=1
Referer: http://www.oanda.com/currency/live-exchange-rates/
(请注意,我只是看了4次被封锁,他们非常高兴。这是因为他们将这些数据作为订阅服务进行商业销售。)
发出请求并在http://www.oanda.com/jslib/wl/lrrr/liverates.js中解析响应。使用RC4(http://en.wikipedia.org/wiki/RC4)
对响应进行“加密” RC4解密方法来自http://www.oanda.com/wandacache/rc4-ea63ca8c97e3cbcd75f72603d4e99df48eb46f66.js。看起来此文件经常刷新,因此您需要从主页获取最新链接并提取var key=<value>
以完全解密该值。