Hatena::Grouprubyist

今日も元気にrubyist

2009-03-25[open-uri][hpricot]日本語URLを含む「こえ部」のタグページを解析する。 このエントリーを含むブックマーク このエントリーのブックマークコメント

こえ部(http://koebu.com)で投稿数が2以上のお題を抽出したいと考えた。

最初はこんな感じでやろうとしたが…

require 'mechanize'

url = 'http://koebu.com/topic/tag/男声向け'

agent = WWW::Mechanize.new
page = agent.get(url)
puts page.body.tosjis

「指定したお題が見つかりません」と言われる。どうやら

url = 'http://koebu.com/topic/tag/男声向け'

が上手く認識できてないみたいで以下のようにURLエンコードしてもダメ。

url = 'http://koebu.com/topic/tag/%E7%94%B7%E5%A3%B0%E5%90%91%E3%81%91'

よってopen-urlを使った。(原因を問い詰めないのが俺流)

require 'open-uri'
require 'hpricot'

maxpagenum = 3
limitpost = 2

1.upto(maxpagenum) do |num|
  doc = Hpricot(open("http://koebu.com/topic/tag/%E7%94%B7%E5%A3%B0%E5%90%91%E3%81%91&page=" + num.to_s))
  (doc/%Q[li.unitTi]).each do |elem|
    if elem.inner_text.slice(%r[\((\d+)\)$], 1).to_i >= limitpost
      title = elem.to_html.slice(%r[<a href=".*?">(.*)</a>], 1)
      title = elem.inner_text
      url = "http://koebu.com/" + elem.to_html.slice(%r[<a href="(.*?)" title="], 1)
      puts title
      puts url
    end
  end
end

これでよし。

RockyRocky2011/09/08 10:38There's nothing like the relief of fiindng what you're looking for.

ijkspnvvycwijkspnvvycw2011/09/09 00:02EAaAa2 <a href="http://thqghzsyfbgg.com/">thqghzsyfbgg</a>

qplmxmnngywqplmxmnngyw2011/09/10 19:12S71y64 <a href="http://vnddcgvcupnd.com/">vnddcgvcupnd</a>

oxbmmbezytnoxbmmbezytn2011/09/12 19:174gYY9T , [url=http://ftmtkfhclunb.com/]ftmtkfhclunb[/url], [link=http://qlupfanwdbjo.com/]qlupfanwdbjo[/link], http://rwlymyurqzsw.com/

JoeieJoeie2016/05/07 15:32Bravo, ottimo articolo – a me questa funzionalità ora non serve, ma mi piace “sapere che c’è” – e soprattutto complimenti per la carica che hai messo nelle cose!Buon la&3#ovr82o0;Mauro