Daftar Isi

Karena berbagai perlindungan (Recaptcha, konten dinamis, pemeriksaan IP, dll.) Scraping Google Maps dalam python murni adalah tugas yang menantang bahkan jika Anda memiliki pengalaman di lapangan. Untungnya, ada banyak alat yang dapat Anda gunakan untuk scraper ulasan dalam python atau bahasa pemrograman lainnya.

Dalam artikel ini, Anda akan melihat dua alat yang paling umum untuk mengikis Google Maps: emulasi browser dan Outscraper API. Tutorial ini seharusnya cukup untuk mengekstrak data untuk individu seperti untuk tim data besar.

Mengikis Google Places dengan Python

Anda dapat mencoba scraping Google dengan python murni tetapi dalam 10 permintaan Anda akan melihat bahwa perangkat lunak Anda diblokir. Hal ini terjadi karena Google memvalidasi sesi dan mengharapkan JavaScript untuk melakukan beberapa panggilan API di latar belakang. Oleh karena itu, menggunakan emulasi browser diperlukan untuk mencegah Google Maps memblokir crawler kami. Selain itu Anda dapat menggunakan proxy.

Untuk memulai membangun scraper google maps dengan emulasi browser, silakan ikuti langkah-langkah yang dijelaskan dalam tutorial ini Cara Mengikis Google Maps dengan Python dan Selenium.

Mengikis Google Places di Python Dalam 6 Menit

Mengembangkan Google Maps scraper dan memeliharanya mungkin membutuhkan banyak waktu dan usaha. Oleh karena itu, banyak tim engineering yang merasa bahwa hal ini menguntungkan bagi mereka untuk fokus pada bidang utama mereka dan menggunakan Platfom Outscraper sebagai sumber data yang dapat diandalkan untuk aplikasi mereka.

Mengikis Google Maps Dengan Menggunakan SDK

1. Anda akan membutuhkan python3+ dan paket python ini. Instal paket dengan menjalankan perintah berikut.

				
					pip install google-services-api
				
			

2. Dapatkan kunci API Anda dari halaman profil.
3. Impor paket dan inisialisasi dengan kunci. Tentukan query untuk menjalankan pencarian seperti ini "Restoran di dekat Los Angeles, AS". Gunakan negara dan kota di dalam setiap kueri.

				
					dari outscraper import ApiClient


api_cliet = ApiClient(api_key='KEY_FROM_OUTSCRAPER')
response = api_cliet.google_maps_search(
    'Restoran di dekat Los Angeles, Amerika Serikat',
    language='en',
    region='es',
    limit=100
)
				
			

4. Tunggu beberapa detik sampai data akan diambil.

				
					[
    {
        "nama": "Sushi Gen",
        "full_address": "422 E 2nd St, Los Angeles, CA 90012",
        "borough": "Little Tokyo",
        "street": "422 E 2nd St",
        "kota": "Los Angeles",
        "postal_code": "90012",
        "kode_negara": "US",
        "negara": "Amerika Serikat",
        "us_state": "California",
        "state": "California",
        "plus_code": null,
        "latitude": 34.0466917,
        "bujur": -118.2385444,
        "time_zone": "America/Los_Angeles",
        "site": "http://www.sushigen-dtla.com/",
        "phone": "+1 213-617-0552",
        "type": "Restoran Sushi",
        "subtipe": "Restoran Sushi, restoran Jepang",
        "posts": null,
        "rating": 4.6,
        "ulasan": 1244,
        "reviews_data": null,
        "photos_count": 1261,
        "google_id": "0x80c2c63850150b9d:0x96cdcf9a38a24170",
        "place_id": "ChIJnQsVUDjGwoARcEGiOJrPzZY",
        "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": "Senin: Tutup | Selasa: 11:00\u20132PM,5\u20137:30PM | Rabu: 11:00\u20132PM,5\u20137:30PM | Kamis: 11:00\u20132PM,5\u20137:30PM | Jumat: 11:00\u20132PM,5\u20138PM | Sabtu: 4\u20138PM | Minggu: Tutup",
        "working_hours": {
            "Senin": "Tutup",
            "Selasa": "11AM\u20132PM,5\u20137:30PM",
            "Rabu": "11AM\u20132PM,5\u20137:30PM",
            "Kamis": "11AM\u20132PM,5\u20137:30PM",
            "Jumat": "11AM\u20132PM,5\u20138PM",
            "Sabtu": "4\u20138PM",
            "Minggu": "Tutup"
        },
        "status_bisnis": "OPERASIONAL",
        "about": {
            "Opsi layanan": {
                "Takeout": true,
                "Pengiriman": false
            },
            "Kesehatan & keselamatan": {
                "Masker diperlukan": true
            },
            "Sorotan": {
                "Pilihan teh yang bagus": true
            },
            "Populer untuk": {
                "Makan siang": true,
                "Makan malam": true,
                "Bersantap sendiri": true
            },
            "Aksesibilitas": {
                "Pintu masuk yang dapat diakses kursi roda": true
            },
            "Penawaran": {
                "Pilihan sehat": true,
                "Piring kecil": true
            },
            "Pilihan bersantap": {
                "Makanan penutup": true
            },
            "Fasilitas": {
                "Kursi tinggi": true
            },
            "Suasana": {
                "Santai": true,
                "Nyaman": true
            },
            "Kerumunan": {
                "Grup": true,
                "Turis": true
            },
            "Perencanaan": {
                "Reservasi makan malam direkomendasikan": true,
                "Menerima reservasi": true,
                "Biasanya menunggu": 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"
    },
    {
        "nama": "Panggangan Air",
        "full_address": "544 S Grand Ave, Los Angeles, CA 90071",
        "borough": "Distrik Keuangan",
        "jalan": "544 S Grand Ave",
        "kota": "Los Angeles",
        "postal_code": "90071",
        "kode_negara": "US",
        "negara": "Amerika Serikat",
        "us_state": "California",
        "state": "California",
        "plus_code": null,
        "latitude": 34.0490403,
        "bujur": -118.25470659999999,
        "time_zone": "America/Los_Angeles",
        "site": "https://www.watergrill.com/la",
        "phone": "+1 213-891-0900",
        "type": "Restoran makanan laut",
        "subtipe": "Restoran makanan laut",
        "posts": null,
        "rating": 4.4,
        "ulasan": 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": "Senin: 11:30AM\u2013939PM | Selasa: 11:30AM\u20139PM | Rabu: 11:30AM\u20139PM | Kamis: 11:30AM\u20139PM | Jumat: 11:30AM\u201310PM | Sabtu: 4\u201310PM | Minggu: 4\u20139PM",
        "working_hours": {
            "Senin": "11:30AM\u20139PM",
            "Selasa": "11:30AM\u20139PM",
            "Rabu": "11:30AM\u20139PM",
            "Kamis": "11:30AM\u20139PM",
            "Jumat": "11:30AM\u201310PM",
            "Sabtu": "4\u201310PM",
            "Minggu": "4\u20139PM"
        },
        "status_bisnis": "OPERASIONAL",
        "about": {
            "Opsi layanan": {
                "Bawa pulang": true,
                "Makan di tempat": true,
                "Pengiriman": false
            },
            "Kesehatan & keselamatan": {
                "Masker wajib": true,
                "Staf memakai masker": true,
                "Staf mendapatkan pemeriksaan suhu": true,
                "Staf diharuskan untuk mendisinfeksi permukaan di antara kunjungan": true
            },
            "Sorotan": {
                "Makanan penutup yang enak": true
            },
            "Populer untuk": {
                "Makan siang": true,
                "Makan malam": true,
                "Bersantap sendiri": true
            },
            "Aksesibilitas": {
                "Pintu masuk yang dapat diakses kursi roda": true,
                "Tempat duduk yang dapat diakses kursi roda": true
            },
            "Penawaran": {
                "Alkohol": true,
                "Bir": true,
                "Koktail": true,
                "Kopi": true,
                "Minuman keras": true,
                "Pilihan sehat": true,
                "Makanan larut malam": true,
                "Piring kecil": true,
                "Pilihan vegetarian": true,
                "Anggur": true
            },
            "Pilihan bersantap": {
                "Makan siang": true,
                "Makan malam": true,
                "Makanan penutup": true,
                "Tempat duduk": true
            },
            "Fasilitas": {
                "Bar di tempat": true,
                "Kursi tinggi": true,
                "Kamar kecil": true,
                "Wi-Fi": true
            },
            "Suasana": {
                "Nyaman": true,
                "Romantis": true,
                "Kelas atas": true
            },
            "Crowd": {
                "Ramah Keluarga": true,
                "Grup": true,
                "Turis": true
            },
            "Perencanaan": {
                "Reservasi makan siang direkomendasikan": true,
                "Reservasi makan malam direkomendasikan": true,
                "Menerima reservasi": 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": "Panggangan Air",
        "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"
    },
    ...
]
				
			

Video Tutorial tentang Cara Mengikis Google Maps di Python


Bonus

Daftar sekarang dan gunakan kode promosi LUAR 1 untuk mendapatkan 10% MATI diskon.

Paket Python https://pypi.org/project/google-services-api
Google Maps Places API ► https://outscraper.com/google-maps-api

0 Komentar

Tinggalkan Balasan

Tempat penampung avatar