amazonで中古の本を上下巻セット買うときのRuby
8月 8th, 2009 admin Posted in Ruby, 未分類 |
・アマゾンで上下巻セットの本を買いたい
・しかも中古で買いたい
・できれば同じ店から2冊買いたい
という要望がたまにあるのだけど、自分でページを見比べるのが面倒なのでスクリプトを書いた。
使用例
ハイペリオン(上)の中古一覧のページとハイペリオン(下)の中古一覧のページを調べてコードに投げる
CODE:
-
$ ruby comp.rb "http://www.amazon.co.jp/gp/offer-listing/4150113335/ref=dp_olp_used?ie=UTF8&qid=1249721097&sr=8-1&condition=used" "http://www.amazon.co.jp/gp/offer-listing/4150113343/ref=dp_olp_used?ie=UTF8&qid=1249724799&sr=1-2&condition=used"
-
-
#=>"qsemark"
-
#=>"まにあコレクション"
-
#=>"晴耕堂"
-
#=>"イーブックスパイダー吉野の桜店"
とハイペリオンを上下巻セットで出品しているお店の名前がわかる。
コード
Rubyで書いてあります
RUBY:
-
require 'rubygems'
-
require 'hpricot'
-
require 'open-uri'
-
require 'kconv'
-
-
$KCODE = 'u'
-
-
cmp_url1 = ARGV[0]
-
cmp_url2 = ARGV[1]
-
list = []
-
-
name_xpath = '//div[@class="seller"]/a/b'
-
-
html = Hpricot(open(cmp_url1).read)
-
html.search(name_xpath).each do |seller|
-
list.push(seller.inner_html.toutf8)
-
end
-
-
html = Hpricot(open(cmp_url2).read)
-
html.search(name_xpath).each do |seller|
-
shop_name = seller.inner_html.toutf8
-
p shop_name if list.include?(shop_name)
-
end
まとめ
だれかブックマークレットでつくってほしい
Leave a Reply