Scraping adalah bagian penting dari bisnis apa pun di dunia modern. Artinya, Anda tidak membuang waktu karyawan Anda untuk mengumpulkan informasi yang diperlukan secara manual, baik itu data pesaing atau dinamika perubahan harga di lantai bursa.
Pencakar sering digunakan untuk mengumpulkan ranjau. Mereka memungkinkan Anda mengelola database saat ini atau memperbarui database lama dengan cepat.
Daftar Isi
Cara memperoleh data
Untuk menggunakan alat secanggih scraping, Anda perlu memutuskan apa yang bersedia Anda bayar: waktu, uang, atau keterampilan pemrograman.
Di sini kita mencermati kemungkinan penggunaan Pengikisan web API. Dan Anda bahkan dapat mengujinya secara gratis – setidaknya untuk 1000 permintaan pertama.
Jika pemrogramannya terlalu rumit untuk Anda, ada alternatif lain. Misalnya, Anda dapat menggunakan Zapier untuk penyesuaian dan integrasi visual.
Mengikis Google Maps menggunakan Web Scraping API
Untuk menggunakan API pengikisan web, masuk ke Scrape-It.Cloud. Untuk melakukan ini, klik “Coba gratis” dan masukkan informasi login Anda. Sekarang Anda dapat membuat permintaan sederhana untuk mengekstrak beberapa data dari Google Maps. Untuk melakukan ini, buka tab “Google Maps Builder” dan masukkan kata kunci yang akan dirayapi di bidang kata kunci:
Jalankan permintaan dari situs dengan mengklik Jalankan Script. 20 baris pertama hasil dari Google Maps dikembalikan.
Algoritma pembuatan scraper
Kami akan menulis seluruh skrip dalam bahasa pemrograman Python. Untuk menggunakannya Anda perlu menginstal seorang juru bahasa.
Untuk membayangkan hasil akhirnya dengan lebih akurat, sekarang mari kita jelaskan algoritma yang akan kita pertimbangkan selanjutnya.
- Coba contoh scraper Google Maps sederhana.
- Ambil daftar kata kunci dari dokumen Excel.
- Dapatkan benih dan beberapa lokasi dari baris perintah.
- Simpan data dalam dokumen baru.
- Membuat file Python dengan scraper Google Maps sederhana adalah bagian termudah. Untuk melakukannya, buka Google Maps Builder dan pilih jenis kode Python. Kemudian salin kode yang dihasilkan ke file dengan ekstensi *.py.
Namun, perpustakaan HTTP.client kemudian digunakan. Namun, untuk mempermudah, kita harus menggunakan perpustakaan permintaan:
import requests
import json
url = "https://api.scrape-it.cloud/scrape/google/locals"
payload = json.dumps({
"country": "US",
"domain": "com",
"keyword": "Pizza",
"ll": "@40.7455096,-74.0083012,14z"
})
headers = {
'x-api-key': 'YOUR-API-KEY',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Ini adalah contoh scraper yang paling sederhana. Jadi kita bisa melanjutkan ke langkah berikutnya.
Mengumpulkan data dari Google Maps tidak pernah semudah ini
Jika Anda dapat menyalin/menempel, Anda dapat mencari lebih dari 1.000 perusahaan dalam waktu kurang dari 2 menit. Sesimpel itu!
- 1.000 baris disertakan
- Tidak diperlukan kartu kredit
- Uji coba 30 hari
Ambil daftar kata kunci dari dokumen
Buat file untuk menyimpan kata kunci. Sebut saja “kata kunci.csv”. Oleh karena itu, setiap kali program membuka baris baru dan melihat kata kunci baru, program tersebut harus menjalankan kueri lagi.
Tambahkan baris yang membuka file kata kunci.csv untuk dibaca dan tentukan siklus baris demi baris:
with open("keywords.csv", "r+") as f:
for keyword in f:
Tempatkan isi permintaan di sini, dengan variabel sebagai pengganti kata kunci yang ditentukan:
temp = """{
"country": "US",
"domain": "com",
"keyword": """+"\""+keyword.strip()+"\""+""",
"ll": "@40.7455096,-74.0083012,14z"
}
"""
payload = json.loads(json.dumps(temp))
Untuk memastikan semuanya baik-baik saja dan berfungsi, Anda dapat menjalankan file pada baris perintah.
Tetapkan jumlah baris
Mari kita tanyakan pada baris perintah untuk posisi awal pengikisan dan jumlah halaman dari posisi ini. Yang kami maksud adalah 20 baris per halaman karena API mengembalikan 20 baris mulai dari yang ditentukan.
Untuk melakukan ini, tambahkan permintaan untuk memasukkan posisi awal dan masukkan ini ke dalam variabel awal:
start = int(input("Start position: "))
Tambahkan juga permintaan jumlah halaman:
pages = int(input("Number of pages: "))
Dan dengan mengingat hal ini, kami mengubah isi permintaan dan menambahkan loop untuk menggores jumlah halaman yang ditentukan mulai dari awal posisi:
for i in range(start, 20*pages, 20):
temp = """{
"country": "US",
"domain": "com",
"keyword": """+"\""+keyword.strip()+"\""+""",
"ll": "@40.7455096,-74.0083012,14z",
"start": """+str(i)+"""
}
"""
Penting untuk diingat bahwa kita hanya dapat menggunakan variabel string di badan permintaan, tetapi untuk loop kita memerlukan variabel numerik.
Simpan hasilnya dalam dokumen Excel
Agar datanya mudah diolah, kami menyimpannya dalam file Excel. Setiap kali Anda memulai program, data dari file yang ada tidak boleh ditambahkan sampai akhir. Dalam hal ini kami akan menghapus data lama. Kami menambahkan file override di awal skrip. Kami juga memberi nama kolom tempat kami menyimpan data:
with open("result.csv", "w") as f:
f.write("position; title; phone; address; website; rating; reviews; type\n")
Kami akan menempatkan penyimpanan data di blok try..exclusive sehingga skrip tidak berhenti bekerja sepenuhnya jika permintaan mengembalikan respons kosong:
try:
for item in data("scrapingResult")("locals"):
with open("result.csv", "a") as f:
f.write(str(item("position"))+"; "+str(item("title"))+"; "+str(item("phone"))+"; "+str(item("address"))+"; "+str(item("website"))+"; "+str(item("rating"))+"; "+str(item("reviews"))+"; "+str(item("type"))+"\n")
except Exception as e:
print("There are no locals")
Mari kita coba jalankan skrip yang dihasilkan dan periksa file result.csv yang dihasilkan:
Kode pengikis lengkap
import requests
import json
url = "https://api.scrape-it.cloud/scrape/google/locals"
headers = {
'x-api-key': 'YOUR-API-KEY',
'Content-Type': 'application/json'
}
with open("result.csv", "w") as f:
f.write("position; title; phone; address; website; rating; reviews; type\n")
start = int(input("Start position: "))
pages = int(input("Number of pages: "))
with open("keywords.csv", "r+") as f:
for keyword in f:
for i in range(start, 20*pages, 20):
temp = """{
"country": "US",
"domain": "com",
"keyword": """+"\""+keyword.strip()+"\""+""",
"ll": "@40.7455096,-74.0083012,14z",
"start": """+str(i)+"""
}
"""
payload = json.loads(json.dumps(temp))
response = requests.request("POST", url, headers=headers, data=payload)
data = json.loads(response.text)
try:
for item in data("scrapingResult")("locals"):
with open("result.csv", "a") as f:
f.write(str(item("position"))+"; "+str(item("title"))+"; "+str(item("phone"))+"; "+str(item("address"))+"; "+str(item("website"))+"; "+str(item("rating"))+"; "+str(item("reviews"))+"; "+str(item("type"))+"\n")
except Exception as e:
print("There are no locals")
Kesimpulan dan temuan
API pengikisan web memungkinkan pengembang untuk tidak khawatir tentang proxy dan menyelesaikan captcha serta fokus pada pembuatan produk utama. Dan dengan menggunakan Google Maps Scraping API, Anda dapat menghemat waktu mengumpulkan prospek atau pemasok.
Menggunakan Python, membuat scraper lengkap cukup mudah. Mirip dengan opsi yang dijelaskan dalam artikel, Anda juga dapat mengubah koordinat atau negara yang ingin Anda kikis.