前回の記事でブロマガのページに載っている2chまとめサイトのURLを取り出してみるということをやってみたので、今回はライブドアブログのページからも取得してみたいと思います。
仕様というか、やっていることは以下の通り。だいたい前回と同じ。
- 言語はPython(2.7.2)。2.6とか古いバージョンでも使えると思う。
- pyqueryというライブラリを使用。
- 取得するのは最初の1ページのみ。
- コマンドプロンプトに表示するだけの簡単な仕様。
- 取得先ページのエンコーディングはUTF-8だと決め打ちしてる(だって判定面倒くさいし)
で、取得できたのがこれ。
VIPPERな俺 http://blog.livedoor.jp/news23vip/ ロン速 http://blog.livedoor.jp/ronsoku2/ 無題のドキュメント http://www.mudainodocument.com/ 暇人\(^o^)/速報 http://himasoku.com/ 結婚・恋愛ニュースぷらす http://blog.livedoor.jp/kekkongo/ アルファルファモザイク http://alfalfalfa.com/ もみあげチャ~シュ~ http://michaelsan.livedoor.biz/ ぶる速-VIP http://burusoku-vip.com/ マジキチ速報 http://majikichi.com/ [2ch]お料理速報 http://oryouri.2chblog.jp/ ラジック http://rajic.ldblog.jp/ ネギ速 http://www.negisoku.com/ ぁゃιぃ(*゚ー゚)NEWS 2nd http://ayacnews2nd.com/ キニ速 http://blog.livedoor.jp/kinisoku/ ガハろぐNewsヽ(・ω・)/ズコー http://gahalog.2chblog.jp/ 妹はVIPPER http://vipsister23.com/ VIPPER速報 http://vippers.jp/ ねたAtoZ http://netaatoz.jp/ 哲学ニュースnwk http://blog.livedoor.jp/nwknews/ BIPブログ http://bipblog.com/ 流速VIP http://ryusoku.com/ ゴールデンタイムズ http://blog.livedoor.jp/goldennews/ ブラブラブラウジング http://brow2ing.doorblog.jp/ カオスちゃんねる http://chaos2ch.com/ ゆるりと ひじきそくほう http://hijikisokuhou.doorblog.jp/ ソニック速報 http://sonicch.com/ 暇つぶしニュース http://blog.livedoor.jp/rbkyn844/ 育児板拾い読み@2ch+ http://blog.livedoor.jp/ikuzi2p/ 2chコピペ保存道場 http://2chcopipe.com/ はーとログ http://blog.livedoor.jp/love120331/ キチガイママまとめ保管庫 http://www.kitimama-matome.net/ 調理兵はVIPPERだった http://blog.livedoor.jp/nonvip/ いたしん! http://itaishinja.com/ かつもくブログ http://katsumoku.net/ ライフハックちゃんねる弐式 http://lifehack2ch.livedoor.biz/ あじゃじゃしたー http://blog.livedoor.jp/chihhylove/ 2chエクサワロス http://exawarosu.net/ 保守速報 http://www.hoshusokuhou.com/ ほんわか2ちゃんねる http://honwaka2ch.livedoor.biz/ 鬼嫁ちゃんねる http://oniyomech.livedoor.biz/ 既婚者の墓場 http://kikonboti.com/ ふよふよ速報。 http://huyosoku.com/ ラビット速報 http://rabitsokuhou.2chblog.jp/ U-1速報 http://u1sokuhou.ldblog.jp/ デジタルニューススレッド http://digital-thread.com/ ハムスター速報 http://hamusoku.com/ 大艦巨砲主義! http://military38.com/ 【2ch】ニュー速VIPブログ(`・ω・´) http://blog.livedoor.jp/insidears/ 【2ch】ニーてつVIPブログ http://neetetsu.com/ ぴろり速報2ちゃんねる http://pirori2ch.com/ きりみちほう http://kirimix.net DDN JAPAN http://japan.digitaldj-network.com もえたす http://www.moe2p.com おいしいお http://www.gurum.biz かれっじライフハッキング http://college2ch.blomaga.jp WorldNews2ch http://worldnews2ch.com ダメージ0 http://damage0.blomaga.jp
いやあ、いっぱいありますね。少しコードに手を加えれば検索を一括除外するのもコレで楽ですね!
前回も書きましたが、上で掲載されたサイトが全て2chまとめ系のサイトではありませんので悪しからず。
数が増えて面倒くさいので、2chまとめ系かどうか一つ一つ調べるのはやりません。
実際に書いてみて思ったことなど
- こんなコードでも割と書くのに時間がかかって自分の能力不足を痛感。
- pyqueryをまともに使うのは前回が初めてだったけど、深いところにある要素も割と簡単に取れるのが良かった。
- 適切な変数名を思いつけなくて憤死した。matome_info_domsとかそれでいいのかよ!と自分に突っ込みを入れずにはいられない。
- 最初書いたときはforステートメントじゃなくてジェネレータ式とか使ったけど、思いの外読みづらくなったのでforステートメントに戻した。
- 未だにジェネレータ式とかジェネレータの適切な使いどころが分からない。
- set型ってこんな使い方でいいのか?
今後これを改良するとしたらどこに手をつけるか
取得するのが最初の1ページだけなので、2ページ目以降の情報も取得できるようにする、というのが順当だろうなあ。
と思いつつ、ページがどれくらい続くのか判定する一番真っ当なやり方ってどうやるんだろう?と思ったりしている。
- クエリ文字列のpageの値を1ずつ増やしていってGETで情報を取り、取得したページの中にまとめサイトの情報がなかったら最終ページと判断する。
- ページ内に設置されたボタンのテキストから最終ページの数値を取得する。
ぱっと思いついたのがコレなんだけど、どうも泥臭い気がしてならない。
autopagerizeの仕様とかを調べるといいのかな?