スクレイピングのチュートリアルを書いてみた。 参考:http://nokogiri.rubyforge.org/nokogiri/Nokogiri.html まだまだたくさんのクラスやメソッドがあるが(読んでない)、HTMLのスクレイピングに限定すれば多分これくらいで十分。 2014-02-16追記 なんかたくさんブックマークされていることに気づいたので、サンプルコードのRuby1.9/2対応のアップデート。 Mechanize周りも修正。WWW::Mechanize → Mechanize 等 (0) 前提知識 Ruby、HTML、DOM、CSSセレクタまたはXPath (1) クラス構造の理解 Nokogiri::HTML::Document < Nokogiri::XML::Document < Nokogiri::XML::Node < Object Nokogiri::XML::
自分が必要としている分しか実装していないので、誰かちゃんと実装してくれませんかねェ。 #!ruby -Ku require 'rubygems' require 'mechanize' require 'uri' module WWW class Mechanize alias_method :_get, :get def get(*args) sleep 1 puts "get: #{args.join(', ')}" _get(*args) end end end class Pixiv attr_reader :bookmark_new_illust def initialize(pixiv_id, pass) @agent = WWW::Mechanize.new login(pixiv_id, pass) BookmarkNewIllust.agent = @agent Mem
1ヶ月ほど前に、アノニマスダイアリーでサービスの紹介させてもらった「完全に一致」のおっさんです。 昨年11月25日に公開させてもらったサービスですが、公開から約1ヶ月半の間、いくつも思ってもみなかった事が起こりました。 誰かに聞いて欲しいものの、例のSEの友人が精神的な病で倒れてしまい聞いてくれる人もおらず、 Twitterでは短すぎてかけず、なおかつブログもないのでここに書かせてもらいます。 「なんだ、またかよ」という方、お目汚し失礼しました。 想定外1:サーバーが幾度となくダウン最初の記事を書いて、初日から約1週間で300万アクセスがあり、この間何度もサーバーが応答しなくなるという事態に陥りました。 MySQLサーバーとWEBサーバーの調整を教えてもらったお陰で、かなりダウン回数減らす事ができたものの、結局全然処理が間に合ってくれませんでした。 一番のネックになったのは画像の変換処理と
IndexPage ActivePerl - Windowsで利用できるPerlのバイナリ配布。ActiveState - ActivePerlの配布元。AddHandler - UPSAliasWikiName - WikiページやURLの別名です。amanja - AmazonAssociateProgram - Amazonの販促プログラム「Amazon Associate Program」について。AntennaSiteName - Wikiアンテナで取得するページと種類の登録。Apache::Session - このページの内容はPerlモジュール/Apache::Sessionに移動しました。ApacheCE - General Paranoyaxcで公開されているWindows CE用のApacheに関する情報。AsO - よろしくですBritneyfhgbl - Need
サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一本吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には食材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい食材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ
例を上げながら、 正規表現の書き方を解説していきます。 以降、 検索に正規表現を使うことを前提に説明をします。 [共通設定]−[一般設定]で[検索文字の色分けをする] にチェックを入れておいた方が分かりやすいかもしれません。 検索対象ファイルは K2Editor の ReleaseNote.txt(Readme.txt ではありません)です。 (あら捜しに近いこともやっていますが、 ご了承ください(笑)) とりあえず、 「.*」で検索してください。 改行以外のすべての文字がマッチすると思います。 (空白だけの行は色がつきませんが、 下移動等で動かしていくと、 マッチしていることが確認できます) それでは、 何故全ての文字がマッチしたのかを解析してみます。 検索語は 「.*」です。 初級編での解説をみると、 「.」は 改行を除く任意の1文字 「*」は 直前のパターンの0回以上の繰り返しとなっ
If you check your Task Manager, you’ll notice many programs running in the background, including the Windows Shell Experience Host. It will appear as ShellExperienceHost.exe, and you may even mistake it for an intruder in your PC. In some cases,… Continue Reading → Many Windows users have been reporting different Origin Thin Setup Errors when they try to install Origin client on their PCs. The fru
Web APIが公開されてなくても、動的にマッシュアップすることが可能だ。便利に使える“まとめサイト”を、各種ツールで動的に構築しよう。 すべて表示 新着記事 関連記事 まとめサイト2.0: 2008年、Webは文字列解析で変わっていく オルタナティブ・ブログを例に挙げて“まとめサイト”を作るための手法を紹介してきたこの連載。最終回は、文字列解析の自動化からキーワードを抽出するための方法を紹介しよう。 (2007/12/28) まとめサイト2.0: 付加価値コンテンツとは――スクレイピングからグラフ化まで HTMLを解析し、スクレイピングしたデータを基にグラフ化を行う。遷移を把握するために有効なものとして、さまざまな応用が考えられるだろう。 (2007/12/21) まとめサイト2.0: スクレイピングで記事ランキングのグラフ化 「オルタナティブ・ブログ」で公開されている週間アクセスランキ
どんなサイトでも、マッシュアップすることができる。APIが公開されていなくてもいい。新たなまとめサイトを構築し、情報付加価値を高めるための手法を解説しよう。 さまざまなコンテンツを組み合わせて、好みに合ったページ(サービス)を作り上げる「マッシュアップ」。これの最たるものは、コンテンツ提供者が公開する「WebAPI」の組み合わせで実現するものだ。 しかし、利用する仕様を整備して、効果的なデータだけをメータデータ配信するWebAPIは、まだそれほど普及していない。つまりマッシュアップというキーワードから流行っている兆しはあっても、対象として使うことができるものは、意外と少ない。思い出してほしい。 このような状況を打開するのが、HTMLコンテンツを抜き出して加工する「スクレイピング(scraping)」という手法だ。 このオンライン・ムックPlus「まとめサイト2.0」では、例として「ITme
ウェブサイトのHTMLを解析してデータを抜き出すことを「スクレイピング」と言います。「引っ掻き取る」という意味。 必要な機能は、 (1)ブラウザのシミュレーション(Form送信やCookie処理など)機能 (2)HTMLを解析する機能 私は、Ruby言語+Mechanize(1の機能)+Nokogiri(2の機能)でやってます。Perlで同じようなことを行うことも出来ます。 「Ruby Mechanize Nokogiri」か「Perl Mechanize」で検索するとサンプルなどがあると思います。 例えば、クレジットカードの利用明細取得サンプル。 http://d.hatena.ne.jp/otn/20090815/p1 他のアプローチとしては、VBとかVBScriptでIEを自動運転する(1の機能)。ただしVBに2の機能のライブラリがあるのかどうか知りません。 IEの自動運転はRuby
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く