Pythonを使用したAmazon価格トラッカー

Pythonを使用してより総合的なAmazon製品価格トラッカーを作成する方法を説明します。

Google SheetsのimportXMLはPythonの製品価格トラッカーと同様のタスクを実行できます。ただし、Googleシートでは同時に50セルのimportXMLしか実行できません。異なる寸法のデータを取得している場合、十分ではありません。正直言って、それははるかに簡単で複雑ではありません。興味がある場合は、Google Sheets ImportXMLに関する私の記事をご覧ください。

この章では、Pythonを使用してより総合的なAmazon製品価格トラッカーを作成する方法を説明します。このトラッカーは、手動作業なしでデータを自動的に更新できるように拡張できます。次のPythonチュートリアルでスケジュールスクリプトを共有する前に、Asinを使用して製品ページを訪問し、価格データを検索、取得、およびGoogleシートにアップロードする方法を説明します。

目次:Pythonを使用したAmazon価格トラッカー

gspreadとOauth2Clientモジュールのインストール

Gspreadは超簡単なGoogle Sheets Python APIです。以前共有したように、Google Sheets APIを引き続き使用して、新しいシートとデータを読み書きすることができます。この記事ではgspreadを使用し、基本的には方法論は同じです。ただし、方法とロジックはシンプルです。

まず、Macbookターミナルにgspreadをインストールする必要があります。

Pip3 Install gspread

次に、アップグレードされたOauthClientモジュールをインストールする必要があります。これは、GoogleシートAPIに接続し、サービスアカウントJSONファイルをアクティブにするためです。

Pip3 Install --upgrade oauth2client

第3に、Google APIプロジェクトとサービスアカウントを作成する必要があります。詳細については、以前に共有した他の記事を確認してください。

GoogleシートAPIスコープを定義することが必要です。Googleドライブに接続する必要があるため、Amazon価格トラッカーを作成するために3つのスコープがあります。以下で、scopeという名前の変数を作成します。

scope = ['https://www.googleapis.com/auth/spreadsheets',

'https://www.googleapis.com/auth/drive.file',

'https://www.googleapis.com/auth/drive']

次に、Google APIでサービスアカウントを作成した後、JSONファイルをダウンロードします。credsという変数を作成し、以下のコーディングにJSONファイル名を追加します。

creds = ServiceAccountCredentials.from_json_keyfile_name('ajljou4098erqwie08234.json',scope)

最後に、gspreadを使用してGoogleシートを読み取り、更新する必要があります。したがって、clientという変数を作成し、credsをこの変数に認証します。

client = gspread.authorize(creds)

スクレイプされたAmazon製品ASINを取得して読み取る

Pythonチュートリアル16で、多数の製品情報をスクレイプし、ASINを含むことができました。したがって、Amazon製品スクレイパーと同じGoogleシートファイルを引き続き使用できます。

まず、openメソッドを使用してGoogleシートファイルを開く必要があります。

sh = client.open('AmazonPriceTracker')

次に、製品asinを保存するGoogleシートタブを選択する必要があります。ここでは、値は0から始まります。 0は最初のタブを表し、その後は1、2などです。

worksheet = sh.get_worksheet(2)

asinデータを保存する列または行がどこにあるかに応じて、col_valueまたはrow_valueのメソッドを使用できます。 gspreadによって提供される他のメソッドについては、ドキュメントを確認してください

values_list = worksheet.col_values(2)

製品ページにアクセスして価格データを取得する

ここで、value_listにはスクレイプされた製品asinが含まれています。次のステップは、ループして価格データを取得するために製品ページを訪問することです。価格要素では、製品の価格が表示される場所がいくつかあります。Amazonページの更新に依存します。ある意味では、リスト価格、現在価格、バイボックス価格、および新しいバイボックス価格の4つの場所があります。ここでは、リスト価格を例示します。

前のPythonチュートリアルで説明したように、Amazonは要求を禁止し、BeautifulSoupが直接ページを訪問します。そのため、seleniumを利用する必要があります。詳細については、以前のPythonチュートリアルを参照してください。

まず、ループを作成し、selenium、BeautifulSoupを使用して価格HTML情報を取得する必要があります。

for asin in values_list:
      competitor = driver.get(f'https://www.amazon.com/dp/{asin}')
      soup = BeautifulSoup(driver.page_source, 'html.parser')
      time.sleep(5)

次に、asinループの親ツリーの下で、価格データのパスを検索し、それをループして作成する必要があります。価格が表示される場所は、Amazonページの更新に依存します。あなたが見ることができるように、リスト価格要素はspanとpriceBlockStrikePriceString a-text-strikeにあります。そこで、以下のようにコードを書きましょう。

for price in soup:

     try:
         ListPrice = price.find('span','priceBlockStrikePriceString a-text-strike').text.replace('$','')
     except Exception as e:
         ListPrice = '0'

注意してください。try-exceptで、noneを0などの数値に設定する方が良いです。後で価格トラッカーで最低価格を見つけるために、あなたを助けます。

Googleシートにアップロードされた取得データを追加およびリセットする

まず、amazonSERPの空の値を作成することができます。これは、後で情報を追加するためです。

AmazonSERPに4つの価格データを収集することを前提としているため、この情報を名前を付けてグループ化し、要素_infoという変数に配置することができます。その後、Pandasモジュールで、append()およびdataframe()メソッドを使用して、この情報を整理された形式で追加およびフレーム化できます。

element_info = {
"ListPrice": ListPrice,
"PagePrice": priceA,
"BuyboxPrice": priceBuybox,
"NewBuyboxPrice": NewpriceBuybox
}

amazonSERP.append(element_info)

df = pd.DataFrame(amazonSERP)

Googleシートの更新には、値をプラグインできる3つのパーツが含まれるvalue_updateメソッドがあります。シートの場所、パラメーター、および値を更新するためのボディです。

gspreadにはフォーマットが割り当てられる必要があるため、reset_index()およびvalues.tolist()メソッドを使用して、現在の注文とフォーマットをリセットする必要があります。

value_list2 = sh.values_update('ProductPagePricingTracker!D1', params={'valueInputOption': 'USER_ENTERED'},body=dict(values=df.T.reset_index().T.values.tolist()))

P&L計算機の最新製品市場価値

DからGまでの列の下には、Amazonの製品ページでスクレイピングされた異なる価格データが表示されます。もちろん、これらのデータをP&L計算機にプラグインすることはお勧めできません。 min() メソッドを使用して、最低価格を選択できます。そのため、あなたのものと比較して最低のものを参照することができます。

P&L計算機では、フラットコスト要素と可変コスト要素以外に、製品の価格市場価値を観察できます。価格は、会話率に影響を与える主要な要素の1つであるため、それに注意を払う必要があります。最新情報は、販売戦略やデジタル広告の入札と予算配分に関するより良い意思決定を支援します。

価格に関する小売市場価値については、より高いパーセンテージ数は競争空間でより競争力のある価格ポイントを示します。条件付き書式を設定して、数値が赤色でハイライト表示された場合にすぐに検出できるようにすることができます。これは、競合他社がプロモーションを実施している可能性があることを示しています。

Amazon製品価格トラッカーのフルPythonスクリプト

Amazon製品価格トラッカーのPythonスクリプトの完全版を入手したい場合は、「第17章」というメッセージを追加してニュースレターに登録してください。スクリプトをすぐにメールボックスに送信します。

お問合せ

Amazon価格トラッカー、ASIN、Oauth2Client、Googleシートを使用して最新の製品市場価値を取得するをお楽しみいただければ幸いです。あなたがそれをした場合、以下のリストに記載されたことのいずれかを行って、私たちのチャンネルをいつでも支援していただければ幸いです。

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

よくある質問:

Q1: Amazonの商品を返品する方法はありますか?

A: Amazonの商品を返品するには、注文履歴ページにアクセスし、返品手続きを行ってください。

Q2: Amazonでの支払い方法は何がありますか?

A: Amazonではクレジットカード、デビットカード、ギフトカード、銀行振込など、さまざまな支払い方法を利用できます。

Q3: Amazonプライムのメリットは何ですか?

A: Amazonプライムに加入すると、迅速な配送、プライムビデオの視聴、音楽のストリーミング、特別なセールなど、さまざまな特典を受けることができます。

Q4: Amazonで商品を購入する際の送料はどうなりますか?

A: Amazonでは一部の商品に対して送料がかかる場合がありますが、プライム会員の場合は一部の商品を送料無料で購入することができます。

Q5: Amazonでの注文キャンセルは可能ですか?

A: 注文が出荷されていない場合は、注文履歴ページからキャンセルすることができます。ただし、すでに出荷されてしまった場合はキャンセルできません。

Q6: Amazonでの商品レビューの書き方を教えてください。

A: 商品ページにアクセスし、評価とレビューを書くボタンをクリックしてください。レビューは他のユーザーにとって参考になる情報となります。

Q7: Amazonでの商品の追跡方法はありますか?

A: 注文履歴ページで特定の注文を選択し、配送状況を確認することができます。また、一部の配送業者の追跡番号を入力することで、詳細な配送情報を確認することもできます。

Q8: Amazonでの商品の保証はありますか?

A: 商品によって異なりますが、一部の商品はメーカーの保証期間が適用される場合があります。詳細は商品ページや購入時の情報をご確認ください。

Q9: Amazonでのプライム会員の解約方法を教えてください。

A: アカウント設定ページにアクセスし、プライム会員の管理を選択し、会員の解約手続きを行ってください。解約手続きを行うと、プライム会員の特典は終了します。

Q10: Amazonでの商品の在庫状況はどのように確認できますか?

A: 商品ページにアクセスし、在庫状況を確認することができます。また、一部の商品は購入前に在庫状況の予約をすることもできます。