はじめに:Livescraperを使ったGoogleレビューのスクレイピング
ご存知の通り、Googleレビューのスクレイピングは、JavaScriptによって読み込まれる動的コンテンツのため、難しい作業となることがあります。公式のGoogle Places APIでは、開発者は1ビジネスのリスティングにつき5件のレビューしか取得できず、これでは不十分な場合が少なくありません。そのため、開発者はGoogleからすべてのレビューを抽出できるスクレイピング手法に頼ることになります。さまざまなスクレイピングツールが利用可能ですが、最も効率的で使いやすいソリューションの一つがLivescraperです。Livescraperは、複雑なスクレイピングインフラのセットアップやメンテナンスを必要とせずに、Googleレビューをはじめとするさまざまな種類のデータのスクレイピングを簡素化する強力なツールです。本ブログでは、Livescraperを使ってGoogleレビューを効果的にスクレイピングする方法をご紹介します。
Livescraperおよびその他の必要なパッケージのインストール
始めるには、Livescraperをインストールする必要があります。さらに、HTMLを解析するためにParselのようなサポートパッケージが必要になる場合があります。以下はLivescraperをインストールするコマンドです。
pip install livescraper
pip install parsel # to extract data from HTML using XPath or CSS selectors
ブラウザの起動
Livescraperは、Seleniumと同様に、動的なページをレンダリングするためにヘッドレスブラウザを使用します。ただし、セットアップと実行はよりシンプルです。始めるには、まずブラウザを初期化する必要があります。
from livescraper import Browser
# Initialize Livescraper browser
browser = Browser(driver_path='./chromedriver') # Provide the path to your ChromeDriver
browser.start() # Start the browser
すべてのレビューページのダウンロード
ブラウザが起動したら、Google Mapsのページを開いてレビューをスクレイピングする準備が整います。これを行うには、以下のコードを使用して任意のGoogle MapsリスティングのURLに移動します。
# Define the URL of the Google Maps place
url = 'https://www.google.com/maps/place/Central+Park+Zoo/@40.7712318,-73.9674707,15z/data=!3m1!5s0x89c259a1e735d943:0xb63f84c661f84258'
# Open the page
browser.get(url)
レビューの解析
ページが読み込まれたら、レビューデータのスクレイピングを開始できます。Livescraperを使うと、HTMLコンテンツの解析とレビュー情報の抽出が簡単に行えます。
from parsel import Selector
# Get the page content
page_content = browser.page_source
selector = Selector(page_content)
# Parse the reviews
reviews = []
for review in selector.xpath('//div[@class="section-review"]'):
reviews.append({
'author': review.xpath('.//span[@class="section-review-title"]/text()').get(),
'rating': review.xpath('.//span[@aria-label="stars"]/@aria-label').get().replace('stars', '').strip(),
'review_text': review.xpath('.//span[@class="section-review-text"]/text()').get(),
})
# Print the results
for review in reviews:
print(review)
ブラウザの停止
スクレイピングタスクが完了したら、必ずブラウザを停止することが重要です。スクレイピング後にブラウザを閉じるには、以下のコードを使用してください:
# Stop the browser
browser.quit()
マルチプロセシングとその他の推奨事項
スクレイピングをスケールさせるには、マルチプロセシングの利用を検討してください。ただし、各ブラウザインスタンスがCPUを1つ消費する点に注意する必要があります。複数のプロセスを処理するのに十分なリソースを確保してください。もう一つの推奨事項は、大規模にスクレイピングする場合にはプロキシを使用することです。これにより、同じIPアドレスからの頻繁なリクエストによってGoogleからブロックされるのを回避できます。
LivescraperでGoogleレビューをスクレイピングする最も簡単な方法
ブラウザエミュレーションを使用したGoogleレビューのスクレイピングは高い柔軟性を提供しますが、特に大規模なスクレイピング作業ではリソース面でコストがかかる場合があります。さらに、頻繁に変更されるGoogleウェブサイトに対応できるスクレイパーをメンテナンスすることは、時間を要する作業となり得ます。さらに簡単なソリューションをお探しなら、LivescraperはSDKとAPIを提供しており、ブラウザのセットアップやプロキシを気にすることなく、驚くほど簡単にGoogleレビューにアクセスできます。
Livescraper SDKを使ってPythonでレビューをスクレイピングする
LivescraperのSDKは、動的コンテンツを手動で処理する必要なく、Google Mapsから直接レビューを取得するためのシンプルな方法を提供します。以下に、SDKを使用してレビューをスクレイピングする方法を示します。SDKをインストールする:
pip install livescraper-sdk
API keyを取得する: Livescraperプラットフォームにアクセスし、プロフィールページからAPI keyを取得します。SDKを使ってレビューをスクレイピングする:
from livescraper_sdk import ApiClient
# Initialize the API client with your API key
api_client = ApiClient(api_key='YOUR_API_KEY')
# Define the Google Maps URL or place ID
place_url = 'https://www.google.com/maps/place/Do+or+Dive+Bar/@40.6867831,-73.9570104,17z/'
# Fetch reviews using the API
reviews = api_client.get_reviews(
place_url=place_url,
language='en',
limit=100 # Set a limit on the number of reviews
)
# Print reviews
for review in reviews['reviews_data']:
print(f"Author: {review['author_name']}")
print(f"Rating: {review['review_rating']}")
print(f"Review: {review['review_text']}")
print(f"Link: {review['review_link']}")
print("-" * 80)
APIレスポンス:
{
"reviews_data": [
"query": "real estate agents in Los Angeles, CA",
"business_name": "Prevu",
"google_id": "0x89c25a18440df38d:0x41db57ca0d7213a0",
"place_id": "ChIJjfMNRBhawokRoBNyDcpX20E",
"place_cid": 4745483157685540000,
"google_place_url": "https://www.google.com/maps?cid=4745483157685539744",
"review_url": "https://search.google.com/local/reviews?placeid=ChIJjfMNRBhawokRoBNyDcpX20E&q=real+estate+agents+in+Los+Angeles,+CA&authuser=0&hl=en&gl=US",
"reviews_per_score": "{1: 2, 2: 1, 3: 2, 4: 1, 5: 623}",
"total_reviews": 629,
"average_rating": 5,
"review_id": "ChdDSUhNMG9nS0VJQ0FnSUN2anFIUW1BRRAB",
"author_link": "https://www.google.com/maps/contrib/100735152414342745869/reviews?hl=en",
"author_title": "Donna Marie",
"author_id": "100735152414342745869",
"author_image": "https://lh3.googleusercontent.com/a/ACg8ocJEQZazUKq5OxvV3RO-EL04yW3EQuSqdQwkEdnjy7jz0VL15A=s120-c-rp-mo-br100",
"review_text": "Very glad I chose Prevu as my real estate agency when looking to purchase a co-op in NYC. Sarah, my agent was incredible helping me find the right place and assisting me with the process of the purchase. And on top of this great service I also got a nice rebate check back. Highly recommend",
"review_img_url": null,
"review_img_urls": null,
"owner_answer": null,
"owner_answer_timestamp": null,
"owner_answer_timestamp_datetime_utc": null,
"review_link": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sChdDSUhNMG9nS0VJQ0FnSUN2anFIUW1BRRAB!2m1!1s0x0:0x41db57ca0d7213a0!3m1!1s2@1:CIHM0ogKEICAgICvjqHQmAE%7CCgwI5rzjugYQsJX5lgE%7C? hl=en",
"review_rating": 5,
"review_timestamp": 1733877350316558,
"review_datetime_utc": "11-12-2024 06:05:50",
"review_likes": null,
"reviews_id": 4745483157685540000
},
...
]
}
動画チュートリアル
Livescraperを使ってGoogleレビューをスクレイピングするセットアップ方法と使い方の詳細なステップバイステップガイドについては、当社の動画チュートリアルをご覧ください。https://www.youtube.com/watch?v=8PwEtCCKZlU
FAQ
すべてのGoogleレビューをスクレイピングするにはどうすればよいですか? Livescraperを使えば、SDKを利用するか、ブラウザウィンドウを制御することで、すべてのGoogleレビューを簡単にスクレイピングできます。大規模なスクレイピングの場合、SDKは複雑なブラウザのセットアップなしでデータにアクセスするシンプルな方法を提供します。GoogleレビューのAPIはありますか? はい、Livescraperは、ブラウザレンダリングやJavaScriptの扱いを心配することなく、Googleレビューを直接取得できるAPIを提供しています。このAPIにはAPI keyを使ってアクセスできます。Livescraperを使ってレビューをスクレイピングするにはどうすればよいですか? Livescraperを使えば、ヘッドレスブラウザを制御してレビューをスクレイピングするか、Livescraper SDKを使用してデータに直接アクセスすることができます。ブラウザやプロキシを自分で扱うのを避けたい場合は、SDKが最も簡単なオプションです。
