上記のページからtwitterのid(screen name)を100個抜き出してくるプログラムを
Rubyで書いて下さい。
素朴に正規表現で。
require 'open-uri' result = [] open('http://www.twitterholic.com/') do |f| f.each_line do |line| if line =~ %r|<td><a href="/twitter/([^/]+)/| result.push($1) end end end puts result.size puts result
とりあえず条件は満たしてると思います。
HTMLパーサのHpricotをつかってみました。
$ gem install hpricot
入っていない場合、でインストールできます。
[screen_name, id]という配列の配列で取得しています。
#!/usr/bin/env ruby # vim:set fileencoding=utf-8 filetype=ruby $KCODE = 'u' require 'rubygems' require 'hpricot' require 'open-uri' uri = "http://www.twitterholic.com/" selector = "div#wrapper > table > tbody > tr > td:nth(2) > a" names = Hpricot(open(uri).read).search(selector).map do |e| e.inner_text.scan(/(.+)¥s¥((.+)¥)/).shift end p names
短めに書いてみました。
100個抜き出してくるとのことですが、任意の個数に変更する場合、3行目の行末の[0,100]の数値を変更して下さい。
require 'open-uri' url = "http://www.twitterholic.com/" p open(url).inject([]) {|r, e| (e =~ /a href="\/twitter\/(.+)\/"/) ? r << $1 : r }[0,100]
コメント(0件)