抓取并且分析远程的接口的数据
访问量: 2832
以抓取 PPTV 在 豌豆荚的首页 的排名为例子。
1. 先把手机连接到 charlse上 (参考:这里) 。
2. 然后,打开豌豆荚(需要安卓手机), 找到对应的接口(可以通过搜索PPTV 这个关键字找到)
(可选)4. 使用postman 或者啥东东,再确定一次。发现这个接口是正确的。
5. 用ruby 模拟这个过程:
$ irb require 'httparty' url = 'http://112.5.16.36:3011/wdj/http://startpage.wandoujia.com/api/v1/fetch?f=phoenix2&max=5&netStatus=WIFI&net=WIFI×tamp=1434693333387&id=wandoujia_android&v=4.17.1&u=7139c1b794754b9a957557a21f024fd7ba26b4ca&launchedCount=31&start=0&token=34ce2e167a88c88cc53a842665c06690&entry=other§ionItemNum=3&vc=6708&ch=wx_baidu_mm_float' response = HTTParty.get(url) # 把response.body 转换成JSON对象。 result = JSON.parse(response.body) # 通过观察,发现该接口返回的数据中, cards是个节点。包含了我们要抓取的内容。所以, result['cards'].each_with_index do |e, index| # 这里就可以获得 PPTV 所在的位置了。 puts "#{e['feedItem']['title']}, index: #{index}" end # 下面是结果: 口袋成语, index: 0 中华英雄传, index: 1 我爱封神, index: 2 KK唱响, index: 3 ..... PPTV聚力, index: 49 QQ浏览器, index: 50 ...
注意:
1. 对于某些接口,需要用汉字转换到 unicode , 见: http://pages.ucsd.edu/~dkjordan/resources/unicodemaker.html
2. 对于 url, 有时候转到的是原始URL, 有的是 编码后的URL, 在这里也可以转换: http://meyerweb.com/eric/tools/dencoder/