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

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

新規登録して質問してみよう
ただいま回答率
85.37%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

881閲覧

scrapyでtext()がうまくいかない

Sonono

総合スコア85

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2021/08/13 16:23

以下のページのスクレイピングを試みています。ISBN-10の値を取得しようとしているのですが、うまくいきません。

scrapy shell https://www.amazon.co.jp/%E3%83%A2%E3%83%B3%E3%83%86%E3%83%BB%E3%82%AF%E3%83%AA%E3%82%B9%E3%83%88%E4%BC%AF%E3%80%887%E3%80%89-%E5%B2%A9%E6%B3%A2%E6%96%87%E5%BA%AB-%E3%82%A2%E3%83%AC%E3%82%AF%E3%82%B5%E3%83%B3%E3%83%89%E3%83%AB-%E3%83%87%E3%83%A5%E3%83%9E/dp/400325337X

以下のコードを実行すると、結果にISBN-10が含まれているのが確認できます。

response.xpath('//ul/li/span/').getall()

['<span class="a-list-item">\n <a class="a-link-normal a-color-tertiary" href="/%E6%9C%AC-%E9%80%9A%E8%B2%A9/b?ie=UTF8&amp;node=465392">\n 本\n </a>\n </span>', '<span class="a-list-item a-color-tertiary">\n ›\n </span>', '<span class="a-list-item">\n <a class="a-link-normal a-color-tertiary" href="/%E6%96%87%E8%8A%B8-%E5%B0%8F%E8%AA%AC-%E6%9C%AC/b?ie=UTF8&amp;node=466284">\n 文学・評論\n </a>\n </span>', '<span class="a-list-item a-color-tertiary">\n ›\n </span>', '<span class="a-list-item">\n <a class="a-link-normal a-color-tertiary" href="/%E8%A9%95%E8%AB%96%E3%83%BB%E6%96%87%E5%AD%A6%E7%A0%94%E7%A9%B6-%E6%96%87%E5%AD%A6%E3%83%BB%E8%A9%95%E8%AB%96-%E5%92%8C%E6%9B%B8/b?ie=UTF8&amp;node=467262">\n 評論・文学研究\n </a>\n </span>', '<span class="a-list-item">\n\n\n\n\n\n\n\n<span class="a-button a-spacing-mini a-button-toggle format"><span class="a-button-inner"><a href="/%E3%83%A2%E3%83%B3%E3%83%86%E3%83%BB%E3%82%AF%E3%83%AA%E3%82%B9%E3%83%88%E4%BC%AF-7-%E5%B2%A9%E6
(略)

ただし、テキスト部分だけ取得しようと以下のコードを実行すると、結果がかなり削られてしまいます。なぜでしょうか。

>>> response.xpath('//ul/li/span/text()').getall()

['\n ', '\n ', '\n ›\n ', '\n ', '\n ', '\n ›\n ', '\n ', '\n ', '\n\n\n\n\n\n\n\n', '\n\n\n\n\n\n\n\n\n\n\n\n\n', '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n', '\n\n\n\n\n\n\n\n\n\n\n\n', '\n\n\n\n\n\n\n\n', '\n\n\n\n\n\n\n\n\n', '\n\n\n\n\n\n\n\n', '\n\n\n\n\n\n\n\n\n\n\n', '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n', '\n\n\n\n\n', '\n\n\n\n\n\n\n\n\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n\n\n\n', '\n - 285,276位本 (', ')\n', ' - 668位', ' - 698位', ' - 2,025位', '\n\n\n\n', '\n', '\n\n', '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n', '\n\n\n\n', '›', '›']

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

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

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

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

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

guest

回答2

0

自己解決

以下のコードで取得できました。
利用規約について情報提供ありがとうございます。robots.txtを見るとページごとにクローリングの可不可がわざわざ決められていて、このページは可なので大丈夫かなと思っています。
response.xpath('//ul/li/span//span/text()').getall()

投稿2021/08/14 02:27

Sonono

総合スコア85

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

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

0

amazon の利用規約には、

この利用許可には、アマゾンサービスまたはそのコンテンツの転売および商業目的での利用、製品リスト、解説、価格などの収集と利用、アマゾンサービスまたはそのコンテンツの二次的利用、第三者のために行うアカウント情報のダウンロードとコピーやその他の利用、データマイニング、ロボットなどのデータ収集・抽出ツールの使用は、一切含まれません。

とあるので、スクレイピングは禁止されていると解釈できます。自己責任で行いましょう。

結果がかなり削られてしまいます。なぜでしょうか。

response.xpath('//ul/li/span/').getall() の結果を見る感じでは、テキスト部分は linkタグ( a ) のテキストが多いと思いますのでspan のテキストでは取得できてないのではないでしょうか。

投稿2021/08/13 23:29

CHERRY

総合スコア25216

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問