我正在尝试从网站中提取数字数据。我尝试使用简单的网络抓取工具来检索数据:

 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”。有谁知道另一种可行的方法。我浏览了漂亮的汤文档,但似乎找不到解决方案?

最佳答案

通过使用以下命令使用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>以完全解密该值。

关于python - 从网站上抓取一个不断变化的整数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21864154/

10-11 04:21