mechanizeを使ったスクレイピングの学習をはじめる

参考書を読みながらだが、AmazonアソシエイトログインにおけるSSLエラーで手こずった。まだまだ理解できていない。

Windows7でNokogiriを使えるようになるまで~RubyInstaller | Scimpr Blog
http://blog.scimpr.com/2015/03/14/windows7%E3%81%A7nokogiri%E3%82%92%E4%BD%BF%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%BE%E3%81%A7%EF%BD%9Erubyinstaller/

nokogiriで、requireに関するエラー(?)が出てしまう。(9857)|teratail
https://teratail.com/questions/9857

RubyのMechanizeがSSLエラーになる。 - それマグで!
http://takuya-1st.hatenablog.jp/entry/20120202/1328168102

ocra :RubyスクリプトをEXEファイルに変換する - それマグで!
http://takuya-1st.hatenablog.jp/entry/20110811/1313043079

それマグで!さんの情報に、とても、お世話になった。

wgetで取得できない場合どうするか? ユーザーエージェントやリファラーの設定

wget --referer=http://www.google.com/ -U "Mozilla/4.0 (compatible; MSIE 4.0; MSN 2.5; Windows 95)" [ダウンロード出来ないページのURL]

このコマンドで取得できた。要するにブラウザ以外のアクセスを弾いている設定なのだろう。そもそもクローラーでアクセスするなら利用するルールを守れってことだね。すみません気をつけます。

参考サイト

wget,curlでUserAgentとかRefererを偽造/詐称 | Index of /.Phantom

wgetをインストールした

Wget for Windows
http://gnuwin32.sourceforge.net/packages/wget.htm

Rubyによるクローラー開発技法』を参考書にしている。

あらかじめCドライブ直下に wget フォルダを新規作成した。インストールした。

C:\wget/bin/wget.exe という構成になった。

Pathを通す

Windwos8を使っているので、エクスプローラーの「PC」で右クリック→プロパティ→システムの詳細設定→環境変数→システム環境変数→Path→末尾に ;(セミコロン)を入力して、それ以降に C:\wget\bin と入力した。

実行

コマンドプロンプト → C:\wget\bin\wget.ext --version → 成功

そのあと wget http://yahoo.co.jp → 実行 → ヤフーのトップページがダウンロードできた。

村上春樹の質問サイトを全部ダウンロードしてやろうと思ってやってみた。アクセス攻撃にならないよう、3秒間隔で。

wget -r -l1 -w2 --random-wait http://www.welluneednt.com/

成功。どんどんダウンロードしてくれる。でもページ数が膨大だったので中断した。特にこだわりがない。書籍化するらしい。