質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

2回答

1376閲覧

Google App ScriptでAmazonの書籍の著者名を抽出したい

Coding_Novice

総合スコア11

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

1クリップ

投稿2020/12/15 16:56

編集2020/12/15 17:03

#質問内容
Google App Scriptを使用して、Amazonの書籍の著者名を抽出するスクレイピングを実行したいと思っているのですが、うまく抽出できません…
実際にスクリプトを下に記述しておりますので、間違いの箇所を教えて頂けますと嬉しいです。

#目的
Amazonの書籍ページをWebスクレイピングして、著者名のみを抽出したいと思っています。
今回は以下の書籍ページを対象としております。

【書籍名】
起業の科学 スタートアップサイエンス

【著者名】
田所 雅之

【AmazonURL】
https://www.amazon.co.jp/%E8%B5%B7%E6%A5%AD%E3%81%AE%E7%A7%91%E5%AD%A6-%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%E3%82%B5%E3%82%A4%E3%82%A8%E3%83%B3%E3%82%B9-%E7%94%B0%E6%89%80-%E9%9B%85%E4%B9%8B/dp/4822259757/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=%E8%B5%B7%E6%A5%AD%E3%81%AE%E7%A7%91%E5%AD%A6&qid=1607859612&sr=8-1

#参考サイト
【難しくない】GASでwebスクレイピングして正規表現でデータを集める
http://www.initialsite.com/w01/14311

#実際に作成したスクリプト
著者名を含むコードを抽出するために作成したスクリプトなのですが、著者名を抽出することができませんでした…
正規表現の表記が間違えている可能性を考え、色々検証してみたのですが、正解を導くことができず…
もしお分かりの方がいましたら、教えて頂けますと嬉しいです。

GoogleAppScript

1function getBookInfo() { 2// 書籍のURLを代入 3 const url = "https://www.amazon.co.jp/%E8%B5%B7%E6%A5%AD%E3%81%AE%E7%A7%91%E5%AD%A6-%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%E3%82%B5%E3%82%A4%E3%82%A8%E3%83%B3%E3%82%B9-%E7%94%B0%E6%89%80-%E9%9B%85%E4%B9%8B/dp/4822259757/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=%E8%B5%B7%E6%A5%AD%E3%81%AE%E7%A7%91%E5%AD%A6&qid=1607859612&sr=8-1"; 4 5// 指定ページのHTMLを取得 6 const content = UrlFetchApp.fetch(url).getContentText() 7 8//正規表現を用いて著者名が含まれているコードを抽出 9 var authorRegExp = new RegExp(/<a data-asin=".*?" class="a-link-normal contributorNameID" href=".*?">(.*?)</a>/g); 10 var getDataAuthor = content.match(authorRegExp); 11 12 console.log(getDataAuthor) 13}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Amazon はスクレイピングを許可していません。
Amazon.co.jp 利用規約

利用許可およびサイトへのアクセス

本規約およびサービス規約の遵守を条件とし、アマゾンまたはコンテンツ提供者は、アマゾンサービスを限定的、非独占的、非商業的および個人的に利用する権利をお客様に許諾します(譲渡およびサブライセンス不可)。この利用許可には、アマゾンサービスまたはそのコンテンツの転売および商業目的での利用、製品リスト、解説、価格などの収集と利用、アマゾンサービスまたはそのコンテンツの二次的利用、第三者のために行うアカウント情報のダウンロードとコピーやその他の利用、データマイニング、ロボットなどのデータ収集・抽出ツールの使用は、一切含まれません。本規約またはその他の規約にて明示的に許諾されていない権利は全てアマゾンまたはそのライセンサー、供給者、出版者、権利保持者またはその他のコンテンツ権利者が留保します。アマゾンサービスまたはそのいかなる部分も、アマゾンからの書面による明示的な承諾を得ていない限り、商業目的のために、複製、複写、コピー、販売、再販、アクセス、その他の利用はできません。商標、ロゴ、およびアマゾンが有するその他の財産権的価値のある情報(画像、文字、ページレイアウト、フォームを含む)は、書面による明示的な承諾を得ていない限り、フレームにしたり、またはフレーム技術を使って取り込んだりすることはできません。また、アマゾンの明示的な書面による許諾なく、アマゾンの名称や商標をメタタグなど隠れたテキストとして使用することはできません。アマゾンサービスを不正に利用することは禁止されており、適用される法律に従ってのみ利用できます。本規約およびその他の利用規約に反する使用をした場合、アマゾンが使用許諾した権利は終了します。

投稿2020/12/15 22:42

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Coding_Novice

2020/12/17 05:50

回答して頂き、ありがとうございます! AmazonではWebスクレイピングをしてはいけなかったんですね…
guest

0

ベストアンサー

その url をブラウザで開いて、開発者コンソールで通信をながめるとページ遷移しているのが分かると思いますが、そのような遷移には UrlfetchApp は追従できません。

おそらく、対象ページのコンテンツを含まないスクリプトだけがかかれたページを取得しているのではないかと推測します。

スクレイピングをするとしたら content をセルに出力して、意図したデータが取得できているか、そしてそれに対して Regex が match を返すかどうか、という地道なデバッグをするしか方法はないです。

投稿2020/12/18 08:32

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Coding_Novice

2020/12/18 08:55

papinianusさん、回答して頂きありがとうございます! >おそらく、対象ページのコンテンツを含まないスクリプトだけがかかれたページを取得しているのではないかと推測します。 仰る通りでした。なので、どうすればよいのか分からず完全に行き詰っておりました。 地道にやるしか方法はないんですね…その方向性が明らかになっただけでもすごく助かります! ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問