スクレイピングについて、質問です。
こちら 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 は、その辺りを厳密に解釈しているようで、閉じるタグがきちんと書かれていないページの解釈では失敗してしまいます。