Nokogiri目的RubyでWebスクレイピングをするぞ!と思って参考になる記事を検索してみると、open-uriでWebページにアクセスしてNokogiriでパースしてタイトルを取得して出力する、みたいな感じの記事がよくヒットする。これは最初の一歩としてはとても大切なことだし、何も間違いではないが、RubyでWebスクレイピングをするぞ!と思った方で、ある特定のWebページのタイトルを取得して出力するのが目的という方はほとんどいないはずだ。そこで、RubyでWebスクレイピングをする方法をもう少し掘り下げて解説し、本来の目的を達成する手助けになるような記事群を作成するのが目的。Webスクレイピングは全くの未経験の方も、前述のような記事を読んでタイトルを取得して出力するところまでやってみた方も、一連の記事群を読んで、Webスクレイピングに親しんでみてほしい。私は3年半ぐらい主にRubyでWebスクレイピングをするお仕事をしていたが、1年ぐらい前に辞めてしまったので、その復習も兼ねている。こっちの方が主目的かもしれない。環境Ruby2.7系とMySQL5.7系を想定しているが、特にMySQLの方は気にしなくて良さそう。Mechanizeはかなり便利で、仕事でも相当使い倒していた自信があるため、なるべく詳しく解説する予定。Chromeの登場を受けて、また、実質的に1人でメンテナンスを継続するのは困難とのことで、PhantomJSがアーカイブ化された。Chromeを使うのが筋になるのだが、こちらについては解説しない。Chromeを使っていない(そこらの人よりは間違いなく使っているが)影響の大きいアップデートが割と頻繁にある(要出典)Chromeを随時アップデートしているローカル環境で開発する場合、Chromeのバージョンが本番環境と食い違うことで余計なバグを生みがち本番環境と同じ開発環境があるのならこのデメリットは消える。パーツが増えるため導入が面倒(導入が面倒なのはNokogiriにも同じことが言えるが)よりシンプルな構成と比べて、マシンのリソースを食うし遅い普通にWebアクセスして落ちてくるhtmlに欲しい情報がない場合でも、ちょっと工夫すればopen-uriで十分なことが多い(この点についても後々解説する)法的なアレコレ個人的な利用からはみ出す、はみ出しそうな場合は、専門家に相談するべき。各種環境設定の方法ほとんどRubygemsなので大丈夫、という判断。Railsを始める人が大抵引っかかるNokogiriの導入については、先人の知恵を借りること。次回は、open-uriでWebページにアクセスしてhtmlを取得してそのhtmlをNokogiriでパースして必要な情報を取得する、という一連の流れをざっくりと解説する。それ以降は、「Webアクセスによるコンテンツ(ほとんどの場合html)の取得」、「取得したコンテンツから必要な情報を切り出す作業」、「切り出した情報の保存」の3点を、きちんと区別して詳細に解説していく方針。Mechanizeの登場は結構先になりそう。Araoアイコンは野球ですが、最近は野球観戦よりもサッカー観戦の方にお熱です(贔屓チームが目も当てられない惨状のため)バッジを贈って著者を応援しようバッジを受け取った著者にはZennから現金やAmazonギフトカードが還元されます。Proよくある質問LinksX(Twitter)GitHubメディアキットLegal利用規約プライバシーポリシ。