API抓取數(shù)據(jù)作業(yè)及總結(jié)

總結(jié)

昨天練習(xí)了兩次WEP API仅乓,花了八個(gè)小時(shí)咨演,在后面的兩個(gè)小時(shí)做作業(yè)攻走,還是沒做出來谓媒。今天花了兩個(gè)小時(shí)做了兩個(gè)出來:一個(gè)是抓云幣的數(shù)據(jù)淆院,參考同學(xué):https://forum.qzy.camp/t/api/1687;另一個(gè)是抓足球賽事的數(shù)據(jù)句惯。
  總結(jié)一下:

先問問題:我是怎么想得土辩?怎么做的支救?結(jié)果怎樣?花了多長(zhǎng)時(shí)間拷淘?我要總結(jié)什么各墨?有什么要改?有什么優(yōu)點(diǎn)和好的做法要繼續(xù)的保持启涯?套路是什么贬堵?

解答:

  1. 我是如此想: 對(duì)不熟的東西,要先打個(gè)照面结洼;先做一遍黎做,看出來的效果,然后把不懂的抄寫松忍。
  2. 如此做:我還是按照先做一遍蒸殿,然后手打一遍,沒有復(fù)盤挽铁,然后對(duì)不懂的手抄了一兩遍。
  3. 昨天結(jié)果是很懵逼敞掘,感覺很失敗叽掘,沒有成就感。今天做完了作業(yè)也感覺沒什么玖雁,也不是很難更扁。
  4. 好的做法要保持:
  • 連續(xù)專注的學(xué)習(xí)
  • 不怕困難
  1. 要改進(jìn)的地方:
  • 第一遍復(fù)制黏貼,不需要手打赫冬;第二遍邊手打邊思考浓镜,看輸出什么,什么代碼有怎樣的結(jié)果劲厌;然后嘗試做一個(gè)類似的東西膛薛、項(xiàng)目出來(這個(gè)很重要);最后總結(jié)套路出來补鼻。
  • 寫總結(jié)哄啄,還有“進(jìn)步本”;總結(jié)套路风范,記錄所學(xué)知識(shí)及要點(diǎn)咨跌,及時(shí)復(fù)習(xí)

API套路

一硼婿、首先拿數(shù)據(jù)锌半,在終端測(cè)試

用 rest-client 抓下來觀察看看,拿我用的聚合數(shù)據(jù)里面足球積分榜的數(shù)據(jù)來做:

接下來實(shí)驗(yàn) Ruby 客戶端寇漫,用 Ruby 程序來抓取上述的資料刊殉。
進(jìn)入 irb:

gem install rest-client
require 'rest-client'
require 'json'
response = RestClient.get "http://v.juhe.cn/football/scorerank.php", :params => { :key => "5a24681a17011d0d74229ed30f13fd77", :league_id => "2" } 
data = JSON.parse(response.body)

我一直糾結(jié)不知道怎么把這個(gè)需要參數(shù)的數(shù)據(jù)提出來殉摔,后來看到這個(gè)key的輸入方式,想到加入這個(gè)league_id的方式冗澈,放進(jìn)去可以奏效钦勘。
成功的話會(huì)顯示如下:

image.png

那這個(gè)數(shù)據(jù)可以用咯。

二亚亲、建立專案
  1. 建立Model
rails new api_(自己取名)
cd api_(上面的名字)
git init

加入gem gem 'rest-client,然后bundle install
執(zhí)行rails g model scoreranks這個(gè)model名字沒改好彻采,感覺改teams更好。
編輯這個(gè)檔案db/migrate/2017xxxxxxxx_create_scroeranks.rb

class CreateScoreranks < ActiveRecord::Migration[5.0]
  def change
    create_table :scoreranks do |t|
      t.integer :juhe_id
      t.integer :league_id
        t.integer :team_group
        t.integer :team_id
        t.string :name_zh
        t.string :known_name_zh
        t.integer :played
        t.integer :rank_index
        t.integer :win
        t.integer :draw
        t.integer :lost
        t.integer :hits
        t.integer :miss
        t.integer :difference
        t.integer :score
        t.string :avg_goal_hit
        t.string :avg_goal_lost
        t.string :avg_goal_win
        t.string :avg_score
        t.integer :season_id

      t.timestamps

    end
  end
end

然后rake db:migrate

  1. 抓取數(shù)據(jù)儲(chǔ)存
    新增lib/tasks/dev.rake
namespace :dev do
  task :fetch_scorerank => :environment do
    puts "Fetch scorerank data..."
    response = RestClient.get "http://v.juhe.cn/football/scorerank.php", :params => { :key => "5a24681a17011d0d74229ed30f13fd77", :league_id => "2", :season_id => "2016" }
    data = JSON.parse(response.body)

    data["result"].each do |c|
      existing_scorerank = Scorerank.find_by_juhe_id( c["id"] )
      if existing_scorerank.nil?
        Scorerank.create!( :juhe_id => c["id"], :season_id => c["season_id"],
        :league_id => c["league_id"],:team_group => c["team_group"], :team_id => c["team_id"],
        :name_zh => c["name_zh"], :known_name_zh => c["known_name_zh"], :played => c["played"],
        :rank_index => c["rank_index"], :win => c["win"], :draw => c["draw"], :lost => c["lost"],
        :hits => c["hits"], :miss => c["miss"], :difference => c["difference"], :score => c["score"],
        :avg_goal_hit => c["avg_goal_hit"], :avg_goal_lost => c["avg_goal_lost"],
        :avg_goal_win => c["avg_goal_win"], :avg_score => c["avg_score"] )

      end
    end

    puts "Total: #{Scorerank.count} Scorerank"
  end
end

執(zhí)行 bundle exec rake dev:fetch_scorerank就會(huì)把數(shù)據(jù)存入了捌归。
上面這塊我糾結(jié)了最長(zhǎng)時(shí)間肛响,老是bundle都顯示錯(cuò)誤,首先create!后面的括號(hào)要緊跟惜索,別有空格特笋,另外格式要對(duì),別少了字母c巾兆。

后面就可以按照教程來做了猎物。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市角塑,隨后出現(xiàn)的幾起案子蔫磨,更是在濱河造成了極大的恐慌,老刑警劉巖圃伶,帶你破解...
    沈念sama閱讀 216,919評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件堤如,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡窒朋,警方通過查閱死者的電腦和手機(jī)搀罢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來侥猩,“玉大人榔至,你說我怎么就攤上這事∑劾停” “怎么了洛退?”我有些...
    開封第一講書人閱讀 163,316評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)杰标。 經(jīng)常有香客問我兵怯,道長(zhǎng),這世上最難降的妖魔是什么腔剂? 我笑而不...
    開封第一講書人閱讀 58,294評(píng)論 1 292
  • 正文 為了忘掉前任媒区,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘袜漩。我一直安慰自己绪爸,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評(píng)論 6 390
  • 文/花漫 我一把揭開白布宙攻。 她就那樣靜靜地躺著奠货,像睡著了一般。 火紅的嫁衣襯著肌膚如雪座掘。 梳的紋絲不亂的頭發(fā)上递惋,一...
    開封第一講書人閱讀 51,245評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音溢陪,去河邊找鬼萍虽。 笑死,一個(gè)胖子當(dāng)著我的面吹牛形真,可吹牛的內(nèi)容都是我干的杉编。 我是一名探鬼主播,決...
    沈念sama閱讀 40,120評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼咆霜,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼邓馒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蛾坯,我...
    開封第一講書人閱讀 38,964評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤光酣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后偿衰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挂疆,經(jīng)...
    沈念sama閱讀 45,376評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡改览,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評(píng)論 2 333
  • 正文 我和宋清朗相戀三年下翎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宝当。...
    茶點(diǎn)故事閱讀 39,764評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡视事,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出庆揩,到底是詐尸還是另有隱情俐东,我是刑警寧澤,帶...
    沈念sama閱讀 35,460評(píng)論 5 344
  • 正文 年R本政府宣布订晌,位于F島的核電站虏辫,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏锈拨。R本人自食惡果不足惜砌庄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧娄昆,春花似錦佩微、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至扒俯,卻和暖如春奶卓,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背陵珍。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評(píng)論 1 269
  • 我被黑心中介騙來泰國打工寝杖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人互纯。 一個(gè)月前我還...
    沈念sama閱讀 47,819評(píng)論 2 370
  • 正文 我出身青樓瑟幕,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親留潦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子只盹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容