スクレイピングについて、質問です。
こちら https://review-of-my-life.blogspot.com/2017/07/google-spreadsheet-information.html を参考にして、ふるさと納税の候補の情報→ http://f.hatena.ne.jp/moon-fondu/20181103203200
を、取得しようと思いました。
http://f.hatena.ne.jp/moon-fondu/20181103203905 にありますように、Google Chormeの検証ツールを使って、ちょうど"おせち"という用語に該当する場所のXPathを取得しました。
//*[@id="main"]/div[2]/div/div[1]/section[4]/div/ul/li[1]
しかし…スプレッドシートに正しい関数を入れているはずなのですが、エラーになってしまいまして。
http://f.hatena.ne.jp/moon-fondu/20181103204459
どうすれば正しく「おせち」という用語をスプレッドシート取得できるのか、お教えいただけますと幸いです。
よろしくお願い致します。
「できません」という回答を書くのは、ちょっと躊躇したのですが、回答に書かせてもらいます。
Google スプレッドシートの関数名が IMORTXML とあるように、対象のページが XMLとして認識できないと、あの関数はエラーを返します。
HTML は XML っぽい感じですが、大きく違うところは、タグを閉じるところを省略できるところです。
HTML だと、IMG は、そもそも閉じるタグを要求しませんし、TABLE や LI とかは、閉じるタグを書かないことが普通にあります。
でも、XML では、文法として許されていません。
ブラウザは解釈してくれるのですが、スプレッドシートの INPORTXML は、その辺りを厳密に解釈しているようで、閉じるタグがきちんと書かれていないページの解釈では失敗してしまいます。
Amazon の方は行けました :-)
Google スプレッドシートではなく、Ruby のコードです。
Mechanize というライブラリを使ってます。
標準出力には、以下のように出力されます。
2018/11/06 21:07:01ありがとうございます(^^;
2018/11/06 21:45:39rubyはまだ自分のWindows10にインストールしていませんが、
インストールして試してみます♪
また、もしお時間ありましたらコチラの方もご教授いただけますと幸いです。
http://q.hatena.ne.jp/1541508285
よろしくお願い致します。