Amazon でのレビュー データのスクレイピングは比較的複雑なタスクです。これは主に、Amazon がクローラーを妨げる厳格なメカニズムを備えているためです。データをスクレイピングする前に、潜在的な法的問題を回避するために、Amazon の利用規約と現地の法律や規制を理解し、遵守していることを確認してください。
これは、Python と、リクエストや BeautifulSoup などのいくつかの一般的なライブラリを使用して、Web ページのコンテンツを取得する方法を示す簡略化された例です。ただし、実際の使用では、JavaScript でレンダリングされたコンテンツ、動的に読み込まれるデータ、ログイン検証など、より多くのクローラ対策メカニズムに対処する必要がある場合があることに注意してください。
まず、リクエストと bs4 ライブラリがインストールされていることを確認します。
pip インストール リクエスト beautifulsoup4
import requests from bs4 import BeautifulSoup def get_amazon_reviews(url): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } response = requests.get(url, headers=headers) if response.status_code == 200: soup = BeautifulSoup(response.text, 'html.parser') # The selector here needs to be adjusted according to the actual HTML structure reviews = soup.find_all('span', {'class': 'a-size-base review-text'}) for review in reviews: print(review.text) else: print("Failed to retrieve content from the URL") # Example URL, please replace with the actual Amazon product review page URL url = 'https://www.amazon.com/product-reviews/YOUR_PRODUCT_ASIN/ref=cm_cr_arp_d_viewopt_rvwer?ie=UTF8&reviewerType=avp_only_reviews&sortBy=recent&pageNumber=1' get_amazon_reviews(url)
ユーザー エージェント: 適切なユーザー エージェントが設定されていることを確認してください。設定されていないと、リクエストが拒否される可能性があります。
セレクター: 例のセレクター (span タグやクラスなど) は、実際のページ構造に従って調整する必要がある場合があります。
クローラ障害: Amazon には複雑なクローリング障害メカニズムがあり、これには JavaScript レンダリング、データの動的ロードなどが含まれる場合があり、Selenium などのより高度なクローラ テクノロジーの使用が必要になる場合があります。
法的および倫理的問題: Web サイトのデータをクロールする前に、Web サイトの利用規約と現地の法律および規制を理解し、遵守していることを確認してください。
Selenium を使用して Amazon のクローラー ブロックに対処すると、人間の操作をシミュレートすることでその検出を回避できます。具体的な手順は次のとおりです:
Selenium ライブラリと、ChromeDriver などの対応する WebDriver をインストールします。
WebDriver を初期化し、対象の Web ページを開きます。
Selenium を介してクリックや入力などのユーザーの動作をシミュレートします。
「カートに追加」ボタンをクリックし、購入数量を選択するなど、一般ユーザーのショッピング プロセスをシミュレートできます。
確認コードに遭遇した場合は、画像認識テクノロジーまたはサードパーティのサービスを通じて解決できます。
ユーザーの行動をシミュレートするプロセスで、製品情報、ユーザーのレビューなどのページ上のデータを抽出できます。
Selenium の使用は、従来のクローラー フレームワークよりも遅くなり、リソースを大量に消費する可能性があるため、大規模な使用は避けてください。
Python で Amazon レビューをクロールする際のログイン検証の解決策:
プロキシを使用する: プロキシを設定して使用すると、同じ IP アドレスへの頻繁なリクエストを回避でき、Amazon によって検出され禁止されるリスクを軽減できます。
ユーザーの動作をシミュレートする: ブラウザー自動化ツール (Selenium など) を使用して実際のユーザーの操作をシミュレートし、識別と検証コードの入力を自動的に完了し、検出される可能性を減らします。
クロール速度の制御: クローラーのアクセス頻度を合理的に制御して、過剰なクロール速度によって Amazon の検証コード メカニズムがトリガーされるのを回避します。
アカウント認証の準備: アカウント認証が必要な場合は、事前に関連する認証資料を準備し、認証通過率を高めるためにネットワーク環境が安定していることを確認してください。
Python によってクロールされた Amazon レビュー データの処理は、次の手順に分けることができます:
リクエストと BeautifulSoup ライブラリを使用して Web ページ データを取得します。
XHR リクエストを分析して実際のレビュー データを取得し、プロキシを使用して安定したアクセスを確保します。
正規表現または BeautifulSoup を使用して、レビューの評価、日付、内容、「いいね!」の数を抽出します。
その後の分析のために、抽出したデータを Excel ファイルまたはデータベースに保存します。
品詞タグ付けに nltk ライブラリを使用し、最も頻繁に出現する単語をカウントします。
seaborn または matplotlib を使用して棒グラフを描画し、結果を表示します。
Python を使用して Amazon レビュー データをクロールすることが違法かどうかは、複数の要因によって決まります。
データの性質: レビュー データが公開情報であるかどうか、また個人のプライバシーや企業秘密に関係するかどうか。
使用目的: データをクロールする目的は合法である必要があり、商業詐欺、悪意のある競争、またはその他の違法行為に使用することはできません。
規制の遵守: Amazon のロボット プロトコルおよびその他の関連規制を遵守する必要があり、ウェブサイトの技術的保護措置を回避したり破壊したりしてはなりません。
法律と規制: クローラーの動作が合法で準拠していることを確認するには、クローラの動作に関する現地の法律と規制の特定の規定を考慮することも必要です。
そのため、Amazon レビューデータの不正なクロールは違法行為となる可能性があります。 Web サイトのデータをクロールする前に、関連する法律と規制および Web サイトの規制を理解し、その行為が合法で準拠していることを確認する必要があります。必要に応じて、専門の弁護士または法的機関に相談して、より正確な法的アドバイスを受けることができます。
Amazon レビューのスクレイピングは技術的な課題であり、法的および倫理的な問題に慎重に対処する必要があります。このような活動を計画している場合は、まず Amazon の関連ポリシーを詳細に理解し、公式 API (利用可能な場合) を使用してデータを取得することを検討することをお勧めします。
以上がPython を使用して Amazon レビューをスクレイピングするためのステップバイステップガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。