Amazon商品スクレイパー作成

Amazonの検索結果にある商品情報には、2つの重要な情報が含まれています。それらは、商品の販売実績と顧客レビュー、およびその商品を販売するショップに対する評価です。そして、これらの情報をさらに活用することで、価格トラッカーやP&L市場価値など、より広範なアプリケーションに展開することができます。

この章では、Amazonの商品スクレイパーを作成し、取得したデータをGoogle Sheetsに保存する方法を共有します。この章の終わりまでに、gspreadモジュールをインストールする方法と、HTML内のデータ要素を見つける場所を学ぶことができます。

目次:Amazon商品スクレイパーの作成(Selenium、BeautifulSoup、Easy2Digital APIを使用)

Amazon商品スクレイパー – Selenium、BeautifulSoup、およびgspreadモジュールのインポート

PythonスクリプトでBeautifulSoupを使用してWebサイトを訪問することはできません。エラーが発生します。代わりに、seleniumを使用してスムーズに商品データを取得できます。これらの2つのモジュールをインポートするプロセスは、以前に他のボットのスクリプトで行ったプロセスと同じです。

また、このスクリプトは、シートに商品情報を取得して保存するだけではありません。それはまた、スケジュールでデータを自動的に更新し、競合他社のマーケティング情報と製品価格を追跡することを目的としています。価格トラッカーについては、別の記事をリリースします。そのため、GoogleシートAPIを使用してデータを管理することをお勧めします。ここでは、gspreadを使用することをお勧めします。それは、ものを簡単にするからです。

GoogleシートAPIを作成し、サービスアカウントを設定するには、他の記事を参照してください。以前に記事をリリースしました。詳細については、この記事をご覧ください。

Easy2Digital Google Sheets APIは、Google APIに接続して取得したデータを管理するのがより簡単です。まず、無料のEasy2Digital APIトークンを申請する必要があります。

次に、Google APIサービスアカウントからダウンロードしたJSONキーの名前をコピーして、Easy2Digital API googleJsonparameterに接続されたスクリプトに貼り付けます。

詳細については、APIドキュメントを参照してください

Amazon 商品スクレイパー – 商品検索スクレイパーのプロトタイプを作成する

検索クエリを使用して、任意の商品の情報を検索できます。基本的には、Amazon 商品スクレイパーのプロトタイプは、検索している商品に関係なく、どの Amazon マーケットでも使用できます。

1. Amazon 検索クエリ URL 構造

URL には、SERP を制御する 2 つのパラメータがあることに気付くかもしれません。1 つはキーワードに続く k で、もう 1 つはページに続くページ番号です。

https://www.amazon.com/s?k=ring+camera&page=2

そのため、使用後に 2 つの変数を作成できます。1 つは検索しているキーワードを表し、もう 1 つは動的にループしてより多くのページを取得するためのものです。

query = "ring+camera"
page = "&page="

2. SERP 内で商品情報ブロックを検索する

商品タイトルを右クリックして、インスペクト機能を使用できます。どの要素が商品情報ブロック全体を取得できるかを確認できます。ブロックには、ASIN、価格、タイトル、URL、レビュー数など、取得する必要のあるすべての主要な商品情報が含まれます。たとえば、これは以前に共有した Web スクレイピングと似ています。

ご覧のように、すべての情報は div というタグに含まれています。そして、データコンポーネントタイプと呼ばれるタグにも含まれています。したがって、このようにコードを起草できます。これは、1 ページ目をスクレイピングするためのものです。

driver.get("

ご覧の通り、すべての情報はdivにあり、データコンポーネントタイプというタグに含まれています。そのため、このようにコードを作成できます。これは、1ページ目のスクレイピングに使用されます。

driver.get("https://www.amazon.com/s?k=query”)
soup = BeautifulSoup(driver.page_source, 'html.parser')
results = soup.find_all('div',{'data-component-type': 's-search-result'})

3. データタイプを選択し、特定のスクレイピングを行う

P&L計算機と接続するためにASINは取得する必要があるキーエレメントです。この点については、別の記事で説明します。

ASIN値は、data-asinというタグにあります。したがって、変数を作成して、attrsを使用して各製品のASIN番号を取得できます。

asins = item.attrs['data-asin']

次に、製品タイトルはHTMLのh2にあります。Pythonコードは以下のようになります。ただし、前導空白(先頭の空白)と後導空白(末尾の空白)を削除するために、テキストの後にstrip()を使用することをお勧めします。

try:
    title = item.h2.a.text.strip()
except Exception as e:
    raise None

価格設定は、競合他社のプロモーションによって動的であり、変更される可能性があるため、価格トラッカーで別の重要な要素です。 Amazon製品スクレイパーでは、このコーディングを使用して価格を取得できます。ただし、後でフィルタリングおよび市場価値の計算を行うために、通貨シグナルを削除することをお勧めします。これにより、データがGoogleシートの数値形式であることが保証されます。

try:
   price_parent = item.find('span','a-price')
   price = price_parent.find('span','a-offscreen').text.replace('$','')
except Exception as e:
   price_parent = '0'
   price = '0'

Amazon製品スクレイパー-検索結果の複数ページをスクレイピングする

Amazon SERPの1ページ目には、平均22個の製品があります。製品の市場パフォーマンスと機会を理解するには十分ではない場合、複数のページをスクレイプする必要があります。幸い、それは複雑ではなく、前に共有したWebページネーションスクレイパーに似ています。

まず、特定のデータフェッチループよりも上位のループを作成する必要があります。変数Xを作成できます。

次に、範囲でページ数を設定できます。ただし、最後のページはy – 1である必要があります。 たとえば、ここでは最後のページが3であるため、最後のページは2であることを意味します。

for x in range (1,3):
    driver.get("https://www.amazon.com/s?k="+query+page+str(x))
    soup = BeautifulSoup(driver.page_source, 'html.parser')
    results = soup.find_all('div',{'data-component-type': 's-search-result'})

         for item in results:

              asins = item.attrs['data-asin']

最後に、AmazonのURL構造を知っているので、URLリクエストを更新する必要があります。次のようになります。

driver.get("https://www.amazon.com/s?k="+query+page+str(x))

取得したデータをGoogleスプレッドシートに保存する

ここで、データをフィードしてGoogleシートに保存する準備が整いました。 “POST”メソッドを使用し、Easy2Digital APIパラメーターに取得したデータと特定のシートタブとセル位置を2つの変数として追加する必要があります。

Amazon Product Scraperの完全なPythonスクリプト

Amazon Product Scraperの完全なバージョンを取得したい場合は、「Chapter 16」というメッセージを追加してニュースレターに登録してください。すぐにスクリプトがメールボックスに送信されます。

お問合せ

第16章-Amazon Product Scraper Using Selenium、BeautifulSoup、およびEasy2Digital APIをお楽しみいただければ幸いです。そうした場合は、以下にリストされているいずれかのことを行って、常に私たちのチャンネルを支援してください。

  • PayPal (paypal.me/Easy2digital)を通じて弊社チャンネルをサポートおよび寄付を行う
  • Easy2Digital YouTubeチャンネルの登録と通知ベルをオンにする。
  • Easy2Digital Facebookページをフォローしていいね!を押す
  • ハッシュタグ#easy2digitalを使用して、ソーシャルネットワーク上で記事を共有する
  • Easy2Digitalの最新記事、動画、割引コードを受け取るために、週刊ニュースレターに登録する
  • www.patreon.com/louisludigitalを通じて、独占的な特典をお楽しみいただくための月額会員に登録する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です