从网站上抓取一个不断变化的整数

时间:2014-02-18 20:04:06

标签: python web-scraping beautifulsoup python-2.x

我正在尝试从网站中提取数字数据。我尝试使用简单的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'。有谁知道另一种可行的方法。我查看了漂亮的汤文档,但我似乎无法找到解决方案?

1 个答案:

答案 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>以完全解密该值。