AdsPower
AdsPower

Amazon Scraper の使用方法に関する詳細ガイド

By AdsPower||222 Views

Amazonのウェブスクレイピングは、賢く行えば企業にとって非常に収益性の高いものになり得ます。信じられないですか?では、 Amazonのレビューを毎日スクレイピングするだけで、わずか2ヶ月で80万ドルもの驚異的な収益を上げたウェブサイトの事例を考えてみてください。すごいでしょう?

一夜にして大金持ちになれるとは約束できませんが、Amazonからデータをスクレイピングして、その目標に近づく方法をお教えすることはできます。

そこで、このブログを読んで、Amazonからデータをスクレイピングする2つの方法を学びましょう。1つはノーコードでAmazonスクレイパーを作成する方法、もう1つはコードを使ってPythonでAmazonスクレイパーを構築する方法です。

しかしその前に、Amazonからデータをスクレイピングしても問題ないかどうかを確認しましょう。

Amazonのデータをスクレイピングすることは合法ですか?

Amazonのウェブサイトをスクレイピングする場合、ルールはやや曖昧です。Amazonのrobots.txtファイルには、スクレイピング可能な項目と厳しく禁止されている項目を詳細にリストアップした、許可されているスクレイピングパラメータが記載されています。

しかし、robots.txtファイルはあくまで倫理的なガイドラインであり、法的拘束力はありません。そのため、Amazonスクレイパーは必ずしも問題なく、アクセス制限のある領域にアクセスできる可能性があります。

しかし、アマゾンはそれだけにとどまらない。さらに一歩進んで、ボットによるサーバーへの過負荷を防ぐための技術的な障壁を導入している。

例えば、CAPTCHAテストやレート制限などのスクレイピング対策を採用しています。これらの障害を克服するには、Amazonスクレイパーは 
ユーザーエージェントのなりすまし、 CAPTCHAの回避、リクエストの遅延といった高度なテクニックを用いなければ、Amazonスクレイピングの試みは夢のままで終わってしまうでしょう。

したがって、 「Amazonはウェブスクレイピングを許可していますか?」という質問に簡潔に答えると、Amazonデータのウェブスクレイピングの合法性は明確ではなく、以下のようなさまざまな要因に依存します。

  • スクレイピングされたデータの種類
  • スクレイピングに使用される方法
  • そして、スクレイピングしたデータの目的


スクレイピングが、ログインが必要なデータへの不正アクセスや、サイトのインフラへの過負荷を伴わない限り、通常は安全なカテゴリーに分類されます。最高裁判所はまた、
不正なウェブスクレイピングを理由にLinkedInからCFAA(コンピュータ詐欺および濫用防止法)に基づいて訴えられたデータ分析会社を擁護しました

さらに、スクレイピングしたデータの使用が合法であることを確認する必要があります。つまり、データを再販したり複製したりしてはいけません。そうすると、深刻な法的影響が生じる可能性があります。

さて、ここで重要な問題が浮かび上がります。アマゾンからデータをスクレイピングするにはどうすればいいのでしょうか?

Amazonのデータをスクレイピングする方法は?

技術的な課題はあるものの、Amazonからのデータスクレイピングは比較的容易です。Amazonのボット対策に対応したコードベースおよびノーコードベースのスクレイピングツールが多数存在し、これらのツールを使えば、Amazonのレビュー、商品、価格などのデータを簡単に取得できます。

それではまず、ノーコードで使えるAmazonスクレイパーから始めましょう。

ノーコードAmazonスクレイパー:

正直に言って、この記事を読んでいる読者のほとんどはプログラミングスキルを持っていない可能性が高いでしょう。しかし、それは問題ありません。ノーコードのAmazonスクレイパーが利用できるので、プログラミングの知識は必要ありません。

これらのツールを使えば、商品ページまたはカテゴリページのURLを入力するだけで、スクレイパーがそのページからAmazonの商品データをすべて取得してくれます。Amazonのウェブスクレイピングが完了すると、複数のファイル保存オプションも提供されます。

今回のデモでは、ApifyのAmazonスクレイパーを選択しました。Apifyには、Amazonのさまざまな領域をスクレイピングするためのツールがそれぞれ用意されており、Amazon商品スクレイパー、Amazonレビュースクレイパー、Amazonベストセラースクレイパーなどがあります。

このガイドでは、ApifyのAmazon Product Scraperを使用します。Amazon Product Scraperには、CAPTCHAを解決したり、プロキシを設定してボット対策を回避する機能が備わっています。

それではデモを始めましょう。

ステップ1:Amazonの商品スクレイパーページにアクセスする

ApifyストアでAmazonプロダクトスクレイパーアクセスし、「無料で試す」ボタンをクリックしてください。このツールを使えば、価格、レビュー、商品説明、画像など、Amazonの商品データをスクレイピングできます。

Amazon Scraper の使用方法に関する詳細ガイド

ステップ2:Apifyアカウントを作成する

初めての方は、Apifyアカウントを無料で作成してください。登録方法は、メールアドレス、Googleアカウント、GitHubアカウントから選択できます。

Amazon Scraper の使用方法に関する詳細ガイド

ステップ3:対象コンテンツのAmazon URLを貼り付ける

Apifyコンソールで、スクレイピングしたいAmazonの商品またはカテゴリのURLを入力します。この例では、 「ビデオゲーム機・周辺機器」と「 家具」カテゴリを使用しています。

Amazon Scraper の使用方法に関する詳細ガイド

「+追加」ボタンを押すと、さらにリンクを追加できます。リンクがたくさんある場合は、すべてをテキストファイルにまとめてAmazonスクレイパーにアップロードすることもできます。

また、「最大アイテム数」欄で制限値を設定して、スクレイピングするアイテムの最大数を決めましょう。ここでは15に設定していますが、お好きなだけ高く設定できます。

ステップ4:CAPTCHAソルバーを有効にする

CAPTCHAソルバーなしではAmazonからデータをスクレイピングすることはできません。Amazonはボットの検出に非常に優れていることで知られています。ボットの活動を疑うとすぐに、ボットに対してCAPTCHA認証を要求します。

Amazonスクレイパーが問題なく動作するように、CAPTCHA認証を有効にしてください。

Amazon Scraper の使用方法に関する詳細ガイド

ステップ5:プロキシの設定

プロキシを使用することは、スクレイピング対策を回避するために不可欠です。Amazonスクレイパーは、スクレイピング活動を隠蔽し、制限を回避するために、レジデンシャルプロキシ、データセンタープロキシ、または独自のプロキシなど、さまざまなプロキシオプションを提供しています。 レジデンシャルプロキシとデータセンタープロキシの違いについては、別のブログ記事をご覧ください。

住宅用プロキシオプションは、スクレイピング対策システムにとって最適であるため、デフォルトで選択されています。

Amazon Scraper の使用方法に関する詳細ガイド

ステップ6:スクレイパーを起動する

パラメータを設定したら、ページ下部の「開始」ボタンを押してAmazon商品スクレイパーを起動してください。

完了すると、ステータスが「実行中」から「成功」に変わります。

Amazon Scraper の使用方法に関する詳細ガイド

処理が完了すると、画面にデータのプレビューが表示されます。

Amazon Scraper の使用方法に関する詳細ガイド

ステップ7:ファイルをエクスポートする

収集したデータをダウンロードするには、「結果をエクスポート」ボタンを押してください。このプラットフォームは、CSV、JSON、Excelなど、複数のフォーマットに対応しています。

Amazon Scraper の使用方法に関する詳細ガイド

Pythonを使ったAmazonスクレイピング

上記で使用したノーコードのAmazonスクレイパーでは、前述のステップ6をよく見ると、173件のリクエストのうち69件が失敗しています。これは、Amazonがこれらのリクエストをブロックしているためです。

この問題を回避するには、独自のスクレイピングスクリプトを作成する必要があります。このガイドでは、Pythonを使用してAmazonの商品情報を取得するスクレイパーを作成します。

それでは始めましょう。

ステップ1:Pythonをインストールする

PythonでAmazonスクレイパーをコーディングするには、コンピュータにPythonがインストールされている必要があります。必要なライブラリとの互換性を確保するため、 最新バージョンまたは最近リリースされたバージョンをダウンロードすることをお勧めします。

ステップ2:必要なライブラリのインポート

Amazonスクレイパーの核心は、ウェブコンテンツの取得と解析にあります。そのためには、複数のPythonライブラリを組み合わせて使用します。

  • リクエスト: AmazonのウェブサイトにHTTPリクエストを行うためのリクエスト
  • BeautifulSoup:返されたHTMLコンテンツをナビゲートおよび解析する
  • lxml:解析用
  • Pandas:データの整理とエクスポートに

インポートする前に、以下のコマンドを使用してインストールする必要があります。

python -m pip install requests beautifulsoup4 lxml pandas

それでは、それらをAmazonスクレイピング用のPythonスクリプトにインポートします。

インポートリクエスト

from bs4 import BeautifulSoup

from urllib.parse import urljoin

import pandas as pd


ステップ3:HTTPヘッダーの設定

Amazonのウェブスクレイピングにおける一般的な障害は、Amazonの自動アクセスに対する防御策です。これを回避するため、当社のAmazonスクレイパーPythonスクリプトは、次のようなカスタムHTTPヘッダーを含めることで、ウェブブラウザのリクエストを模倣します。 「User-Agent」と「Accept-Language」。

ヘッダーをもっと追加する方が良いでしょう。

custom_headers = {
    'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36'
    'Accept-Language' : 'en-US,en;q=0.9'
    'Accept-Encoding' : 'gzip, deflate, br, zstd'
    '承認' : 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8'
    「参照元」 : 「https://www.amazon.com/」
}


お使いのブラウザでこれらのヘッダーを取得するには、

  • AmazonのページでF12キーを押して開発者ツールを開きます。
  • ネットワークタブを開き、ヘッダーを選択します。
  • ページを再読み込みしてください。
  • 最初のリクエストを選択してください
  • ヘッダータブで、リクエストヘッダーセクションまでスクロールダウンし、上記で説明したヘッダーの値をコピーします。

    Amazon Scraper の使用方法に関する詳細ガイド

これらのヘッダーがない場合、Amazon が GET リクエストをブロックし、ステータスコード 200 (成功) の代わりに 503 (エラー) のようなレスポンスを返す可能性が高くなります。

Amazonデータへの自動アクセスについてご相談されたい場合は、api-services-support@amazon.comまでご連絡ください。


ステップ4:製品情報の抽出

当社のAmazon商品スクレイパーには、商品詳細を抽出するという重要なタスクを実行する関数scrape_amazon_productが含まれています。この関数は、AmazonのカテゴリページのURLを入力として受け取り、商品の情報を含む辞書を返します。

このメソッドは、上記で作成したURLとカスタムヘッダー変数を使用して、Amazonにリクエストを送信します。

その後、BeautifulSoupのCSSセレクターを使用して、個々の商品ページから商品のタイトル、価格、画像URL、および説明を取得します。

def scrape_amazon_product (url) :
response = requests.get(url, headers=custom_headers)
    if response.status_code != 200 :
print( f"ウェブページの取得中にエラーが発生しました: {url} " )
        戻る なし

soup = BeautifulSoup(response.text, "lxml" )

title_element = soup.select_one( "#productTitle" )
title = title_element.text.strip() if title_element else  なし

price_element = soup.select_one( 'span.a-offscreen' )
price = price_element.text if price_element else  なし

image_element = soup.select_one( "#landingImage" )
image = image_element.attrs.get( "src" ) if image_element else  なし

description_element = soup.select_one( "#productDescription" )
description = description_element.text.strip() if description_element else  なし

    戻る{
        「タイトル」 :タイトル、
        「価格」 :価格、
        「画像」 :画像、
        「説明」 :説明、
        「url」 :url
}


ステップ5:商品リストとページネーションの処理

Amazonのスクレイピング用Pythonスクリプトは、カテゴリページを移動し、ページネーションを処理することで大量のデータを収集するため、Amazonの商品一覧ページをナビゲートします。

CSSセレクタを使用して商品リンクを識別し、「次へ」ページリンクを検出することでページネーションに対応します。

visited_urls = set()

def parse_pages (listing_url) :
    グローバルな訪問済みURL
response = requests.get(listing_url, headers=custom_headers)
print(response.status_code)
soup_search = BeautifulSoup(response.text, "lxml" )
link_elements = soup_search.select( "[data-asin] h2 a" )
ページデータ = []

    for link in link_elements:
full_url = urljoin(listing_url, link.attrs.get( "href" ))
        full_url  visited_urls :
visited_urls.add(full_url)
print( f" {full_url[: 100 ]}から製品をスクレイピングしています" , flush= True )
product_info = scrape_amazon_product(full_url)
            商品情報の場合
page_data.append(product_info)

next_page_el = soup_search.select_one( 'as-pagination-next' )
    next_page_el の場合:
next_page_url = next_page_el.attrs.get( 'href' )
next_page_url = urljoin(listing_url, next_page_url)
print( f'次のページをスクレイピング中: {next_page_url} ' , flush= True )
page_data += parse_pages(next_page_url)

    ページデータを返す


ステップ6:スクレイピングしたデータの保存

最後に、スクレイピングされたデータは辞書のリストに集約され、それがPandas DataFrameに変換されます。そして、このDataFrameはCSVファイルとしてエクスポートされます。

def main () :
データ = []
search_url = "https://www.amazon.com/s?k=dell&rh=n%3A13896617011&ref=nb_sb_noss"
data = parse_pages(search_url)
df = pd.DataFrame(data)
df.to_csv( "Computer_Tablets.csv" , orient= 'records' )

if __name__ == '__main__' :
主要()


Amazonスクレイパーをステルスで使用する

Amazonのスクレイピングは通常は簡単です。しかし、CAPTCHA認証、リクエストブロック、レート制限など、複数の課題に直面する可能性があります。

こうした問題に遭遇しないようにするには、 AdsPowerのような検出回避ブラウザを使用することをお勧めします。AdsPowerは、フィンガープリントの偽装やプロキシのローテーションといった機能を提供することで、Amazonスクレイパーが検出されないようにします。

それで サインアップ 今すぐ無料で登録して、Amazonからのデータスクレイピングをスムーズに始めましょう。

AdsPower

あらゆる業界に最適なマルチログインブラウザ

Amazon Scraper の使用方法に関する詳細ガイド

他にも読む記事