目次を見る

様々なプロテクト(Recaptcha、ダイナミックコンテンツ、IPチェックなど)のため、純粋なpythonでGoogleマップをスクレイピングすることは、この分野での経験があっても難しい作業です。幸いなことに、pythonやその他のプログラミング言語でレビューをスクレイピングするために採用できるツールがたくさんあります。

この記事では、Google Mapsをスクレイピングするための最も一般的な2つのツール、ブラウザエミュレーションとOutscraper APIを紹介します。このチュートリアルは、個人でもビッグデータチームでも、データを抽出するのに十分なはずです。

PythonでGoogle Placesをスクレイピング

純粋なpythonでGoogleのスクレイピングを試すことはできますが、10回のリクエストであなたのソフトウェアがブロックされていることがわかります。これは、Googleがセッションを検証し、JavaScriptがバックグラウンドでいくつかのAPIコールを行うことを期待しているために起こります。したがって、ブラウザエミュレーションを使用することは、Google Mapsが私たちのクローラーをブロックするのを防ぐために必要です。さらに、プロキシを使用することもできます。

ブラウザエミュレーションによるGoogleマップスクレーパーの構築を開始するには、このチュートリアルで説明されている手順に従ってください。 PythonとSeleniumでGoogle Mapsをスクレイピングする方法.

PythonでGoogle Placesを6分でスクレイピング

Google Maps スクレーパーを開発し、それを維持するには、膨大な時間と労力が必要です。そのため、多くのエンジニアリング・チームは、本業に専念するために、Outscraperプラットフォームをアプリの信頼できるデータ・ソースとして利用することが有益であると考えています。

SDKを利用したGoogle Mapsのスクレイピング

1.必要なものは、python3+と このPythonパッケージ.以下のコマンドを実行して、パッケージをインストールします。

				
					pip install google-services-api。
				
			

2.からAPIキーを取得してください。 プロフィールページ.
3.パッケージをインポートし、キーで初期化します。検索を実行するクエリを以下のように指定する "アメリカ・ロサンゼルス近郊のレストラン".各クエリの中で国や都市を使用します。

				
					from outscraper import ApiClient


api_cliet = ApiClient(api_key='KEY_FROM_OUTSCRAPER')
response = api_cliet.google_maps_search(
    'アメリカ、ロサンゼルス近郊のレストラン',
    language='en',
    region='es',
    limit=100
)
				
			

4.データが取得されるまで、数秒待ちます。

				
					[
    {
        "name":"Sushi Gen",
        "full_address":"422 E 2nd St, Los Angeles, CA 90012",
        "borough":"Little Tokyo",
        "street":"422 E 2nd St",
        "city":"Los Angeles",
        "postal_code":"90012",
        "country_code":"US",
        "country":"United States of America",
        "us_state":"California",
        "state":"California",
        "plus_code": null,
        "latitude":34.0466917,
        "longitude":-118.2385444,
        "time_zone":"America/Los_Angeles",
        "site":"http://www.sushigen-dtla.com/",
        "phone":"+1 213-617-0552",
        "type":"sushi restaurant",
        "subtypes":"sushi restaurant, Japanese restaurant",
        "posts": null,
        "rating":4.6,
        "reviews":1244,
        "reviews_data": null,
        "photos_count":1261,
        "google_id":"0x80c2c63850150b9d:0x96cdcf9a38a24170",
        "place_id":"ChIJnQsVUDjGwoARcEGiOJrPzY "です。
        "reviews_link":"https://search.google.com/local/reviews?placeid=ChIJnQsVUDjGwoARcEGiOJrPzZY&q=Restaurants+near+Los+Angeles,+USA&authuser=0&hl=en&gl=US",
        "reviews_id":"-7580174336512605840",
        "photo":"https://lh5.googleusercontent.com/p/AF1QipMtt0bMtJTF1bDTZ2tbXuWXtZTNWmvjJUu3ejKy",
        "working_hours_old_format":"Monday:Closed| Tuesday| 11AM_u20132PM,5\u20137:30PM| Wednesday| 11AM_u20132PM,5½u20137:30PM| Thursday| 11AM_u20132PM,5½u20137:30PM| Friday| 11AM_u20132PM,5½u20138PM| Saturday:4:00pm, 4:00pm, 4:00pm, 4:00pmClosed",
        "working_hours":{
            "Monday":「休業です。
            "Tuesday":"11AM\u20132PM,5\u20137:30PM",
            "Wednesday":"11AM\u20132PM,5\u20137:30PM",
            "Thursday":"11AM\u20132PM,5\u20137:30PM",
            "Friday":"11AM\u20132PM,5\u20138PM",
            "Saturday"「4\\です。
            「Sunday":「定休日
        },
        "business_status":"OPERATIONAL",
        "about":{
            "Service options":{
                "テイクアウト": true
                "Delivery": false
            },
            "Health & Safety":{
                "Mask required": true
            },
            "Highlights":{
                "素晴らしいお茶のセレクション": true
            },
            "Popular for":{
                "ランチ": 真
                "Dinner": 真
                "Solo dining": true
            },
            "Accessibility":{
                "車いす用入口": true
            },
            "Offerings":{
                "ヘルシーオプション": true
                "スモールプレート": true
            },
            "Dining options":{
                "Dessert": True
            },
            "Amenities":{
                "ハイチェア": true
            },
            "Atmosphere":{
                "Casual": true
                "Cozy": true
            },
            "Crowd" (クラウド){
                "Groups": true,
                "Tourists": 真
            },
            "Planning":{
                "ディナー予約推奨": true
                "予約受付中": 真
                "お待たせすることがあります": true
            }
        },
        "range":"$$$",
        "reviews_per_score":{
            "1":25,
            "2":14,
            "3":52,
            "4":291,
            "5":862
        },
        "reserving_table_link": null,
        "booking_appointment_link": null,
        "owner_id":"100930306416993024046",
        "verified": true,
        "owner_title":"Sushi Gen",
        "owner_link":"https://www.google.com/maps/contrib/100930306416993024046",
        "location_link":"https://www.google.com/maps/place/Sushi+Gen/@34.0466917,-118.2385444,14z/data=!4m8!1m2!2m1!1sSushi+Gen!3m4!1s0x80c2c63850150b9d:0x96cdcf9a38a24170!8m2!3d34.0466917!4d-118.2385444"
    },
    {
        "name":"Water Grill"
        "full_address":"544 S Grand Ave, Los Angeles, CA 90071",
        "borough":"Financial District",
        "street":"544 S Grand Ave",
        "city":"Los Angeles",
        "postal_code":"90071",
        "country_code":"US",
        "country":"United States of America",
        "us_state":"California",
        "state":"California",
        "plus_code": null,
        "latitude":34.0490403,
        "longitude":-118.25470659999999,
        "time_zone":"America/Los_Angeles",
        "site":"https://www.watergrill.com/la",
        "phone":"+1 213-891-0900",
        "type":"seafood restaurant",
        "subtypes":"Seafood restaurant",
        "posts": null,
        "rating":4.4,
        "reviews":1387,
        "reviews_data": null,
        "photos_count":1429,
        "google_id":"0x80c2c7b4901ce7c7:0x2ad996c9a82b097c",
        "place_id":"ChIJx-cckLTHwoARfAkrqMmW2So",
        "reviews_link":"https://search.google.com/local/reviews?placeid=ChIJx-cckLTHwoARfAkrqMmW2So&q=Restaurants+near+Los+Angeles,+USA&authuser=0&hl=en&gl=US",
        "reviews_id":"3087664812393171324",
        "photo":"https://lh5.googleusercontent.com/p/AF1QipPX7-DP07mvQQSxDjDjuOVYj9HlQ2bvNJ_EEZYW",
        "working_hours_old_format":"Monday: 11:30AM\u20139PM| Tuesday: 11:30AM\u20139PM| Wednesday: 11:30AM\u20139PM| Thursday: 11:30AM\u20139PM| Friday: 11:30AM\u201310PM| Saturday:4u201310PM | Sunday:4%",
        "working_hours":{
            "Monday":"11:30AM\u20139PM",
            "Tuesday":「11:30AM\u20139PM"
            「Wednesday" (水曜日)「11:30AM\u20139PM"
            「Thursday「11:30AM\u20139PM"
            「Friday「11:30AM\u201310PM"
            「Saturday「4\\です。
            「Sunday"4\\"
        },
        "business_status":"OPERATIONAL",
        "about":{
            "Service options":{
                "Takeout": true,
                "Dine-in": true,
                "デリバリー": false
            },
            "Health & Safety":{
                "Mask required": true,
                "スタッフはマスクを着用": true
                「スタッフは体温チェックを受ける": 本当
                "スタッフは訪問時に表面を消毒する必要がある": true
            },
            "ハイライト "とは{
                "素晴らしいデザート": true
            },
            "Popular for":{
                "ランチ": 真
                "Dinner": 真
                "Solo dining": true
            },
            "Accessibility":{
                "車椅子でアクセス可能な入口": True,
                "車椅子でアクセス可能な座席": True
            },
            "Offerings":{
                "Alcohol": True,
                "Beer": true,
                "Cocktails": true,
                "コーヒー": 真
                "ハードリカー": 真
                "ヘルシーオプション": true
                "Late-night food": True,
                "小皿料理": 本当
                「ベジタリアンオプション: 本当
                "ワイン":true
            },
            "Dining options":{
                "Lunch": True,
                "Dinner": True,
                "Dessert": true,
                "Seating": true
            },
            "Amenities":{
                "Bar onsite": True,
                "ハイチェア": 本当
                "Restroom": true,
                "Wi-Fi": 本当
            },
            "Atmosphere":{
                "Cozy": true,
                "Romantic": true,
                "Upscale": true
            },
            "Crowd" (クラウド){
                "Family-friendly": true,
                "Groups": true,
                "観光客": 真
            },
            "Planning":{
                "Lunch reservations recommended": True,
                "ディナーのご予約をお勧めします": true
                "ご予約承ります": True
            }
        },
        "range":"$$$",
        "reviews_per_score":{
            "1":27,
            "2":32,
            "3":97,
            "4":408,
            "5":823
        },
        "reserving_table_link":"https://www.watergrill.com/la#RESERVATIONS",
        "booking_appointment_link":"https://www.watergrill.com/la#RESERVATIONS",
        "owner_id":"116715188720123884576",
        "verified": true,
        "owner_title":"Water Grill",
        "owner_link":"https://www.google.com/maps/contrib/116715188720123884576",
        "location_link":"https://www.google.com/maps/place/Water+Grill/@34.0490403,-118.25470659999999,14z/data=!4m8!1m2!2m1!1sWater+Grill!3m4!1s0x80c2c7b4901ce7c7:0x2ad996c9a82b097c!8m2!3d34.0490403!4d-118.25470659999999"
    },
    ...
]
 </xmp
				
			

PythonでGoogle Mapsをスクレイピングする方法のビデオチュートリアル


ボーナス

今すぐ登録する をクリックし、プロモーションコードをご利用ください。 OUTSCRAPER1 を手に入れることができます。 10%オフ 割引。

Pythonパッケージ ► https://pypi.org/project/google-services-api
Google Maps Places API ► https://outscraper.com/google-maps-api

0コメント

コメントを残す

アバタープレースホルダー