Google SheetsのimportXMLはPythonの製品価格トラッカーと同様のタスクを実行できます。ただし、Googleシートでは同時に50セルのimportXMLしか実行できません。異なる寸法のデータを取得している場合、十分ではありません。正直言って、それははるかに簡単で複雑ではありません。興味がある場合は、Google Sheets ImportXMLに関する私の記事をご覧ください。
この章では、Pythonを使用してより総合的なAmazon製品価格トラッカーを作成する方法を説明します。このトラッカーは、手動作業なしでデータを自動的に更新できるように拡張できます。次のPythonチュートリアルでスケジュールスクリプトを共有する前に、Asinを使用して製品ページを訪問し、価格データを検索、取得、およびGoogleシートにアップロードする方法を説明します。
目次:Pythonを使用したAmazon価格トラッカー
- gspreadとOauth2Clientモジュールのインストール
- スクレイプされたAmazon製品ASINを取得して読み取る
- 製品ページにアクセスして価格データを取得する
- Googleシートにアップロードされた取得データを追加およびリセットする
- P&L計算機で最新の製品市場価値
- Amazon製品価格トラッカーの完全なPythonスクリプト
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を通じて、独占的な特典をお楽しみいただくための月額会員に登録する