プロ野球の結果をスクレイピングする
スクレイピングについて勉強したいと思いプロ野球の結果を取得するコードを書いてみました。
データ取得元はこちら
スポーツナビ
Rubyで書いたのですが、nokogiriというライブリが非常に便利でした。
最低限動くだけならかなり簡単に書くことができますし、かなり実用的だと思います。
ですかスクレイピングは法律関係が色々あるので実際使うとなると難しいですね。
scrape.rb
# -*- coding: utf-8 -*- require 'mechanize' require 'nokogiri' date = ARGV[0] page = Mechanize.new.get("http://baseball.yahoo.co.jp/npb/schedule/?&date=" + date) doc = Nokogiri::HTML.parse(page.body) doc.xpath('//table[@class="yjMS mb5"]/tr').each do |node| # team node.xpath('td[@class="today pl7"]/a').each do |elem| p elem.text end # startTime ballPark node.xpath('td[@class="today pl7"]/em').each do |elem| /(\d{2}:\d{2})(.+)/ =~ elem.text p $1 p $2.gsub(" ", "") end # score inning node.xpath('td[@class="today ct"]').each do |elem| if /(\d+) - (\d+)/ =~ elem.text p $1 p $2 p elem.text end elem.xpath('a').each do |inning| p inning.text end end # pitchers node.xpath('td[@class="today"]/table/tr').each do |elem| p elem.xpath('td[@class="w"]').text.gsub(/勝[[:space:]]/,"") p elem.xpath('td[@class="s"]').text.gsub(/S[[:space:]]/,"") p elem.xpath('td[@class="l"]').text.gsub(/敗[[:space:]]/,"") end end
使い方
引数に日付をYYYYMMDD形式で指定します。
ruby scrape.rb 20150823
出力
ホームチーム アウェイチーム 開始時間 球場 ホームチームの得点 アウェイチームの得点 試合のスコア 進行状況 勝利投手 セーブ投手 敗戦投手
が出力されます。
XcodeでCode Sining Error
久しぶりにXcodeでビルドしたらタイトルのエラーが出ました。
エラー全文は以下の通り。
The identity used to sign the executable is no longer valid
Please verify that your device's clock is properly set,
and that your signing certificate is not expired.
前回最後にビルドした後にdeveloperアカウントを更新したのでその為だと思います。
preferences->accounts->view details->更新としてもエラーは消えず。
preferences->accountsで一度Apple IDを削除して再び追加したらエラーは消えました。
めでたし。
centos6.5でeamcs caskを使ったパッケージ管理
今までemacsのパッケージ管理にcaskを使うことにしたのでメモ。
導入
caskはemacs24以上が必要なのでまずこちらから。
centos6.5のデフォルトではemacs23なのでソースからコンパイルしてインストールします。
sudo yum -y install gcc make ncurses-devel wget wget http://ftp.jaist.ac.jp/pub/GNU/emacs/emacs-24.x.tar.gz tar xvf emacs-24.x.tar.gz cd emacs-24.x ./configure –without-x –without-selinux make sudo make install
次にcaskを導入し,パスを通します。
curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python export PATH="$HOME/.cask/bin:$PATH"
上記の他にもbrew,gitを使った方法があります。
設定
インストールが済んだところで設定に入ります。
パッケージを導入するためにCaskというファイルを作成します。このファイルを元に必要なパッケージを導入、管理します。
形式は以下のような形になります。depends-onの後にパッケージ名を書くだけです。
(depends-on "xxxxxxxx")
Caskファイルが完成したら次のコマンドでパッケージをインストールできます。
cask install
curlのRESTリクエストの送り方
# POST $ curl -X POST -d http://localhost:3000/xxxxx "title=タイトル" # PUT $ curl -X PUT -d http://localhost:3000/xxxxx/1 "title=タイトル" # GET $ curl http://localhost:3000/xxxxx/3 # DELETE $ curl -X DELETE http://localhost:3000/xxxxx/5
Widgetter
iosアプリWIdgetterをリリースしました。
機能はウィジェットでツイートが見れるというシンプルなものです。
リツイート、返信、お気に入りもできるようになっています。
Widgetter - useful widget for Twitter on the App Store on iTunes