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

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

新規登録して質問してみよう
ただいま回答率
85.46%
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Python

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

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

1回答

2975閲覧

python selenium 動的ページのhtmlソース読み込みができません

abu

総合スコア4

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Python

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

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2021/04/29 00:42

編集2021/04/29 01:07

前提・実現したいこと

現在、スクレイピングの練習として、amazonのサイトの中古の商品を出品している出品者で商品画像を出している場合、その商品画像を読み込み、自身のデスクトップに配置してあるあるファイルに保存する練習をしています。
その中で、amazonサイト内で動的に変化させた後のページのhtmlソースを取得しようとしたのですが、そのページを変化させる前のページのhtmlソースしか読み取ることができません。
かれこれいろいろ調べてみたのですが、自分の実力では解決することができず、こうして質問させていただくことにしました。
ご教授願います。

発生している問題・エラーメッセージ

変化した後の動的ページのhtmlソースが読み取れない。

該当のソースコード

python

1from bs4 import BeautifulSoup 2from pathlib import Path 3import requests 4 5out_folder = Path("challenge") 6out_folder.mkdir(exist_ok = True) 7 8driver = webdriver.Chrome("C:hoge") 9code = "B084DJK6TB" 10url = "https://www.amazon.co.jp/dp/{}" 11url = url.format(code) 12 13driver.get(url) 14 15driver.find_element_by_xpath('//*[@id="olp_feature_div"]/div[2]/span/a').click() 16html = driver.page_source.encode('utf-8') 17soup = BeautifulSoup(html,"html.parser") 18 19element = soup.find('img',class_ = "aod-condition-image-thumbnail") 20element = element["src"] 21print(element) 22 23 24

上記コードは、とりあえず画像ファイルのパスをとるところまでやってみようとして、変化後のページのhtmlコードをクラス指定して画像読み込みしようとしたができなかったというものです。
おそらく変化前のページのhtmlコードを読み取ってしまっているのだと思います。

試したこと

調べてみると、何やらoptionを使うとよいというようなことが書かれてありました。ですが、よくわかりませんでした。

補足情報(FW/ツールのバージョンなど)

おそらく不要な情報ですが、idleを使ってコードを実行しています。
また、プログラミング初心者のため、用語の理解などあやふやなところがあり、読みにくい文章となってしまっているかもしれません。読みにくかったら、どこが読みにくいなどお気軽に質問ください。
それではよろしくお願いします。

参考ページ

https://www.amazon.co.jp/dp/B084DJK6TB

例えば、上記ページなどで、新品、中古品、というところを押した後に変化したページのhtmlソースを読み込みたいです。

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

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

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

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

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

guest

回答1

0

Amazonをスクレイピングするのは利用規約違反です。

この利用許可には、アマゾンサービスまたはそのコンテンツの転売および商業目的での利用、製品リスト、解説、価格などの収集と利用、(中略)、データマイニング、ロボットなどのデータ収集・抽出ツールの使用は、一切含まれません。(利用規約より)

投稿2021/04/29 00:51

maisumakun

総合スコア145208

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

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

abu

2021/04/29 00:58

なるほど、そうなのですね、知りませんでした。ですが、気になるので、もし、これがAmazonのサイトではなかった場合、どうすれば動的処理をした後のページの、htmlソースを取得できるのか、お教えいただけないでしょうか? よろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問