Mengikis Data Hotel Menggunakan Python

Diterbitkan: 2018-08-21
Daftar Isi menunjukkan
Bagaimana Anda Bisa Mendapatkan Manfaat dengan Mengikis Data Hotel?
1. Menyiapkan Editor Kode Sumber
2. Penginstal Atom
3. Menginstal Python
Cara Merangkak Web-nya
Data yang Diekstraksi
Kapan Anda Harus Pergi dengan Penyedia Layanan Scraping Web?

Didirikan pada tahun 2000, situs web perjalanan yang berbasis di Boston adalah salah satu portal perjalanan yang paling banyak digunakan di seluruh dunia. Tetapi dengan begitu banyak pengguna dan hotel dan pemesanan, dan ulasan, Anda dapat memahami besarnya data perjalanan yang dihasilkan. Jadi mari kita lihat apa yang harus dilakukan dengan data itu, dan cara mengikis data hotel menggunakan python .

Bagaimana Anda Dapat Manfaat dengan Mengikis Data Hotel ?

Kami mempelajari beberapa fakta penting terkait dengan mega-raksasa industri pemesanan pariwisata dunia. Sekarang yang penting adalah bagaimana Anda bisa mendapatkan keuntungan dari crawling dan scraping itu? Tidak seperti situs web, Anda mungkin hanya melayani orang-orang di negara tertentu, atau bahkan kota atau daerah tertentu. Mungkin sulit untuk memetakan setiap penginapan dan hotel, terutama jika Anda baru mendirikan bisnis. Jika Anda merayapi data dari situs ini, Anda akan mendapatkan berbagai detail dari setiap hotel seperti:

  • Nama lengkap
  • Gambar Perwakilan
  • Alamat lengkap
  • Kisaran Harga Kamar
  • Peringkat
  • Ulasan

Dengan begitu banyak data, Anda dapat dengan mudah memantau harga pesaing Anda dan memahami apa yang dikatakan pengguna tentang berbagai properti melalui ulasan. Diberikan di bawah ini adalah aplikasi penting dari data harga dan ulasan pelanggan:

  • Harga kompetitif dan kecerdasan harga dari data harga
  • Memastikan bahwa OTA mematuhi harga dan konsistensi merek Anda
  • Memahami pergerakan persediaan berdasarkan musim dan lokasi
  • Pemantauan merek untuk manajemen reputasi online
  • Memahami preferensi konsumen

Hari ini kami akan menunjukkan kepada Anda cara merayapi semua data yang disebutkan di atas dalam format JSON, untuk hotel tertentu, asalkan Anda memiliki URL-nya.

Setelah Anda memiliki data dalam format JSON, Anda dapat menyimpannya di database NoSQL Anda sendiri dan menggunakannya jika diperlukan. Jika Anda membutuhkan harga, Anda hanya dapat mengakses harganya, ketika Anda perlu menunjukkan kepada seseorang gambar yang representatif, Anda juga dapat melakukannya, dan seterusnya. Anda dapat terus menggores dan menambahkan ke database Anda, saat Anda membangun sistem untuk memperbarui data historis dengan menyimpan daftar URL hotel Anda yang sebelumnya tergores. Sistem seperti itu dalam skala besar dapat dibangun dengan bantuan penyedia solusi pengikisan web yang berpengalaman seperti PromptCloud.

Jadi, mari kita mulai dengan dasar-dasarnya.

1. Menyiapkan Editor dan Kode Sumber

Untuk menyalin dan mengedit cuplikan kode yang diberikan nanti, Anda memerlukan editor kode, atau IDE. Perbedaan mendasar antara keduanya adalah, editor kode akan memungkinkan Anda mengedit kode bahasa pemrograman apa pun, dan Anda dapat menjalankan kode dari command prompt, setelah mengedit dan menyimpan kode. Namun, dalam IDE (Integrated Development Environment) seperti PyCharm, Anda akan memiliki opsi seperti editor kode sumber, alat otomatisasi untuk pembuatan, dan debugger. Ada beberapa opsi gratis, baik untuk IDE maupun editor kode, seperti Pycharm, Sublime, dan Atom. Lebih mudah untuk memulai dengan Atom, karena memungkinkan fungsionalitas tambahan yang ditemukan di IDE melalui instalasi paket tambahan untuk bahasa pemrograman yang berbeda. Ini adalah tautan untuk atom- https://atom.io/

halaman web atom
Gambar: Halaman Web Atom

Saat mengunjungi situs web mereka, Anda akan melihat bahwa mereka telah mendeteksi sistem operasi Anda, serta kompatibilitasnya (32-bit atau 64-bit). Bergantung pada itu, mereka akan memberi Anda versi terbaru dari editor mereka. Cukup klik tombol Unduh.

Banyak orang menggunakan Git, perangkat lunak pembuatan versi populer untuk melacak kode mereka. Jika Anda menggunakannya juga, atom menyediakan integrasi luar biasa dengan GitHub.

File instalasi atom akan berukuran sekitar 150MB, dan setelah diunduh, Anda dapat mengkliknya untuk melihat popup yang diberikan di bawah ini. Itu akan tetap ada saat penginstalan berlangsung, jadi Anda mungkin harus menunggu satu atau dua menit.

Penginstal Atom
Penginstal Atom

2. Penginstal Atom

Setelah Atom diinstal, Anda juga dapat menginstal beberapa paket, seperti yang telah kita bahas sebelumnya, yang akan memberi Anda beberapa fungsi IDE. Ini akan membuat pengkodean lebih mudah bagi Anda, dengan fitur seperti pelengkapan otomatis dan debug yang mudah. Tekan CTRL+ tombol koma (tekan tombol kontrol dan tombol koma secara bersamaan). Atau Anda bisa pergi jauh dan pilih File >> Settings >> Install . Di sini Anda dapat mengetik Python di bilah pencarian dan mendapatkan paket yang berbeda untuk Anda sendiri seperti autocomplete-python yang akan membantu Anda memberikan saran saat Anda mengetik, untuk melengkapi kode Anda secara otomatis.

Menginstal Paket di Atom
Gambar: Memasang Paket di Atom

Jika Anda memiliki file kode yang ada di komputer Anda (seperti file java atau file ruby), Anda dapat memuatnya dalam atom dan melihat tampilannya. Ada lebih banyak fitur di Atom , seperti mengubah tema, tetapi bagian eksplorasi diserahkan kepada Anda yang dapat dilakukan dengan sedikit bantuan dari Google.

3. Menginstal Python

Beberapa pengalaman pemrograman dasar dalam segala jenis bahasa pemrograman berorientasi objek direkomendasikan. Namun, tutorial DIY ini akan membantu Anda menjalankan scraper dan mendapatkan data Anda sehingga Anda mengekstrak data untuk mendapatkan pemahaman dasar. Kami akan membahas semuanya mulai dari instalasi hingga melihat JSON .

Pertama, Anda perlu mengunjungi tautan berikut - https://www.python.org/downloads.

Halaman Web Python
Gambar: Halaman Web Python

Klik tombol Download Python 3.7.0 . Versi yang ditampilkan mungkin lebih tinggi, tergantung pada berapa hari dari sekarang Anda memeriksa situs web. Juga, tergantung pada sistem operasi Anda, Linux, Mac, atau Windows, versi Python mungkin berbeda.

Setelah file instalasi diunduh, Anda dapat mengkliknya, dan pilih instal. Ikuti instruksi dan pilih di mana Anda ingin Python diinstal. Berikut adalah screenshot dari file instalasi untuk versi 32-bit dari Python 3.7.0 Pastikan Anda mencentang kedua kotak sebelum mengklik Install Now . Jika Anda ingin membuat penyesuaian seperti mengubah direktori tempat Anda ingin menginstal Python, Anda juga dapat mengklik tombol Customize Installation .

Setelah instalasi selesai, Anda dapat menjalankan program python untuk melihat apakah semuanya berfungsi dengan baik. Anda tidak perlu memiliki pengetahuan Unix untuk menjalankan program python dari command prompt. Yang perlu Anda ketik adalah python diikuti dengan nama file yang Anda coba jalankan dan kemudian tekan enter. Ingatlah untuk menyimpan semua file Anda dengan ekstensi .py karena ekstensi .py menunjukkan bahwa file adalah file Python . Sekarang mari kita coba program python sederhana yang memberi kita jumlah dua angka. Kami akan membuat file di direktori saat ini dengan nama addition.py dan ketik kode berikut di dalamnya-

[bahasa kode="python"]
x = 5
y = 2
def tambahkan(a,b):
print(“Jumlah dari “+str(a)+” dan “+str(b)+” adalah “+str(a+b))
tambahkan(x,y)
[/kode]

Kami kemudian akan menjalankannya dari command prompt menggunakan –

[bahasa kode="python"]penambahan python.py[/code]

Ini akan menjalankan program dan menampilkan jumlah dari dua angka. Anda dapat menulis fungsi serupa untuk pengurangan, pembagian, dan sebagainya dan merasakan python.

python tambahan.py
Gambar: python tambahan.py

Di python, beberapa orang telah membuat fungsionalitas yang dapat digunakan kembali. Ini disebut Python libraries . Anda dapat menggunakan ini dengan mengimpornya ke dalam program Anda, tetapi sebelum Anda melakukannya, Anda perlu memastikan, bahwa Anda telah menginstal paket-paket tersebut menggunakan pip . Pip adalah manajer paket baris perintah yang dibundel dengan python.

Untuk tutorial ini kita akan menggunakan BS4 , lebih dikenal dengan Beautiful Soup . Ini adalah Python library untuk mengambil data dari file HTML dan XML. Ia bekerja dengan parser apa pun (atau parser lxml secara default), untuk menyediakan cara idiomatik untuk menavigasi, mencari, dan memodifikasi pohon parse. Ini membantu mengais data dari html yang tergores menggunakan satu baris kode. Melakukan ini secara manual akan memakan waktu berjam-jam, jika bukan berhari-hari.

Halaman dokumentasi untuk info lebih lanjut tentang sup cantik tersedia di sini – Sup Cantik (bs4).

Jika sudah terinstal di sistem Anda (jika seseorang menggunakan python di sistem sebelumnya), Anda akan melihat pesan ini di baris perintah Anda –

“Persyaratan sudah pesan terpenuhi” .

Cara Merangkak Web-nya

Sekarang lingkungan dan editor teks sudah diatur, kita bisa turun ke bisnis yang sebenarnya. Anda akan memahami bagaimana data dapat diekstraksi dari halaman web hotel tertentu.

Ketika Anda mengeksekusi kode, Anda akan diminta untuk memberikan url. Anda dapat memberikan URL untuk halaman hotel mana pun. Kami akan mengambil yang berikut -

https://www..in/Hotel_Review-g1162480-d478012-Reviews-Radisson_BLU_Resort_Temple_Bay_Mamallapuram-Mahabalipuram_Kanchipuram_District_Tamil_N.html

Kode untuk merayapi halaman web diberikan di bawah ini. Masukkan URL yang disebutkan di atas saat diminta, setelah menjalankan program ini. Tautan untuk kode jika ada masalah –

(https://drive.google.com/open?id=19xBkg4rKTxk7Vk6-TfxnNLa9GTcVvq3a)

[bahasa kode="python"]
impor urllib.request, urllib.parse, urllib.error
dari bs4 impor BeautifulSoup
impor ssl
impor json
impor ulang
sistem impor
impor warningsif bukan sys.warnoptions:
warnings.simplefilter(“ignore”)#Untuk mengabaikan kesalahan sertifikat SSL
ctx = ssl.create_default_context()
ctx.check_hostname = Salah
ctx.verify_mode = ssl.CERT_NONE# url = input('Masukkan url – ' )
url=input(“Masukkan Url Hotel –“)
html = urllib.request.urlopen(url, konteks=ctx).read()
sup = BeautifulSoup(html, 'html.parser')

html = sup.prettify(“utf-8”)
hotel_json = {}

untuk baris di soup.find_all('script',attrs={“type” : “application/ld+json”}):
detail = baris.teks.strip()
detail = json.loads(detail)
hotel_json[“nama”] = detail[“nama”]
hotel_json[“url”] = “https://www.<domainname>.in”+details[“url”]
hotel_json[“gambar”] = detail[“gambar”]
detail[“Rentang Harga”] = detail[“Rentang Harga”].replace(“₹ “,”Rs “)
detail[“HargaRange”] = detail[“Rentang Harga”].replace(“₹”,”Rs “)
hotel_json[“priceRange”] = detail[“priceRange”]
hotel_json[“aggregateRating”]={}
hotel_json[“aggregateRating”][“ratingValue”]=details[“aggregateRating”][“ratingValue”]
hotel_json[“aggregateRating”][“reviewCount”]=details[“aggregateRating”][“reviewCount”]
hotel_json[“alamat”]={}
hotel_json[“alamat”][“Jalan”]=detail[“alamat”][“alamat jalan”]
hotel_json[“alamat”][“Lokalitas”]=detail[“alamat”][“alamatLokalitas”]
hotel_json[“alamat”][“Wilayah”]=detail[“alamat”][“alamatWilayah”]
hotel_json[“alamat”][“Zip”]=detail[“alamat”][“kodepos”]
hotel_json[“address”][“Country”]=details[“address”][“addressCountry”][“name”]
merusak
hotel_json[“ulasan”]=[]
untuk baris di soup.find_all('p',attrs={“class” : “partial_entry”}):
ulasan = baris.teks.strip()
jika ulasan != “”:
ulasan = baris.teks.strip()
if review.endswith("Lainnya"):
ulasan = ulasan[:-4]
if review.startswith(“Dear”):
melanjutkan
ulasan = ulasan.ganti('r', ' ').ganti('n', ' ')
ulasan = ' '.join(review.split())
hotel_json[“ulasan”].append(ulasan)

dengan open(hotel_json[“name”] + “.html”, “wb”) sebagai file:
file.tulis(html)

dengan open(hotel_json[“name”] + “.json”, 'w') sebagai outfile:
json.dump(hotel_json, outfile, indent=4)
[/kode]

Setelah Anda menjalankan program dan memberikan html yang disediakan, Anda akan mendapatkan file json, dengan nama yang sama dengan nama hotel (Radisson BLU Resort Temple Bay Mamallapuram.json), dan akan terlihat seperti di bawah ini. Tautan ke json agar mudah digunakan –

(https://drive.google.com/open?id=1DQxkTLVUm8UAu7ByKh7NrqK3iBjME6MQ)

[bahasa kode="python"]
{
“nama”: “Radisson BLU Resort Temple Bay Mamallapuram”,
“url”: “https://www.<domainname>.in/Hotel_Review-g1162480-d478012-Reviews-Radisson_BLU_Resort_Temple_Bay_Mamallapuram-Mahabalipuram_Kanchipuram_District_Tamil_N.html”,
“image”: “https://media-cdn.<domainname>.com/media/photo-s/03/e5/92/9b/radisson-blu-resort-temple.jpg”,
“Rentang Harga”: “Rs 8.356 – Rs 36.027 (Berdasarkan Tarif Rata-Rata untuk Kamar Standar)”,
“peringkat agregat”: {
“nilainilai”: “4.0”,
“jumlah ulasan”: “2407”
},
"alamat": {
“Jalan”: “57 Jalan Covelong”,
“Lokalitas”: “Mahabalipuram”,
“Wilayah”: “Tamil Nadu”,
"Zip": "603104",
"Negara": "India"
},
“ulasan”: [
“Resor luas yang terawat baik di pantai. Memiliki salah satu kolam renang terbesar, halaman rumput, banyak kegiatan untuk anak-anak, kamar yang didekorasi dengan baik, bermain kriket, bola voli, staf yang ramah dan pemandangan kuil pantai di pantai. Makanan rata-rata ….”,
“Tempat ini luar biasa. Kami mendapat kamar yang menghadap ke kolam renang. Kereta membawa kami berkeliling halaman rumput hijau yang rimbun, bunga, dan pohon kelapa. Tempat yang sangat terawat. Kolam renang mungkin adalah bagian terbaik dari resor. Pantai, area deknya indah. Layanannya bagus. Kami diberitahu bahwa resor ini…”,
“Saya Memiliki Pengalaman Baik Dengan Radisson BLU Resort Temple Bay Mamallapuram. Berada di sana selama satu hari penuh dengan tim saya. Saya menyukai tempat ini dan pantai yang terhubung dengan Resort. Makanan Lezat &amp;amp; Minuman Selamat Datang.”,
“Saya menginap di sana selama 1 hari bersama keluarga lengkap. Kami telah memesan 6 kamar dan kualitas kamar sangat bagus sehingga setiap anggota keluarga senang. Pelayanan yang baik makanan yang baik kolam renang yang baik staf yang baik. Secara keseluruhan pengalaman menginap yang sangat baik”
]
}
[/kode]

Data yang Diekstraksi

Anda dapat melihat beberapa bidang berbeda di JSON. Biarkan kami menjelaskannya kepada Anda untuk konsumsi yang lebih mudah. Bidang nama cukup jelas, dan diikuti oleh URL, gambar, dan kisaran harga. URL sebenarnya adalah URL yang sama dengan yang Anda berikan pada program saat diminta –

Eksekusi scraper
Eksekusi scraper

Itu termasuk dalam JSON jika Anda membutuhkannya nanti. URL gambar akan memberi Anda gambaran representatif dari hotel dan kisaran harga akan memberi Anda gambaran tentang tarif minimum di mana Anda bisa mendapatkan kamar standar dan biaya maksimum suite terbaik. Bidang alamat dipecah menjadi beberapa sub bidang hanya untuk pemfilteran yang lebih mudah, tergantung pada kasus penggunaan. Jalan, lokalitas, wilayah, kode pos, dan Negara, semuanya disediakan untuk Anda. Anda dapat menggabungkan dan menggunakannya sebagai satu kesatuan, atau menggunakannya untuk memfilter menurut kode pos, atau negara, atau wilayah, dan seterusnya.

Bidang Peringkat agregat memiliki peringkat dari lima dan jumlah orang yang benar-benar mengulas hotel. Mengapa keduanya penting? Misalkan sebuah hotel diberi peringkat 4,9/5 bintang, tetapi hanya 10 orang yang mengulasnya, sedangkan yang lain diberi peringkat 4,5/5 bintang, tetapi diulas oleh 2.500 orang. Yang mana yang akan dipesan pelanggan?

Selanjutnya Anda akan menemukan kolom ulasan, yang terdiri dari ulasan teratas di halaman utama hotel. Anda dapat melihat bahwa beberapa ulasan terlalu panjang dan terpotong dalam bentuk “…”. Secara terprogram ini dapat diperluas untuk mengungkapkan ulasan lengkap juga. Anda dapat menggunakan ini untuk data dan menjalankan teknik penambangan teks untuk memahami Suara Pelanggan yang berkaitan dengan hotel, pro dan kontranya.

Semua data ini dapat dipecah dan formatnya dapat diubah, dan dapat digunakan sesuka Anda, karena JSON dapat dibaca dari semua bahasa pemrograman dan mengikuti format standar yang diterima di seluruh dunia.

Setelah menjalankan program, Anda dapat melihat bahwa file html dengan nama hotel juga telah dibuat. Ini adalah salinan lengkap dari halaman html yang baru saja digores. Anda dapat menggunakannya untuk analisis lebih lanjut dan mencoba sendiri untuk mengambil data darinya.

Kapan Anda Harus Menggunakan Penyedia Layanan Scraping Web ?

Kebanyakan orang tanpa pengetahuan pengkodean mungkin masih tidak yakin tentang keseluruhan proses. Meskipun ini dapat digunakan sebagai proses pembelajaran, perusahaan yang memerlukan data berskala besar pada frekuensi reguler harus memilih penyedia solusi perayapan khusus. Berikut adalah manfaat utama bekerja dengan profesional seperti PromptCloud – penyedia layanan pengikisan web yang dikelola sepenuhnya:

  • Layanan terkelola sepenuhnya
  • Dapat disesuaikan sepenuhnya
  • Dukungan khusus dengan SLA yang kuat
  • Latensi rendah
  • Sangat skalabel
  • Pemeliharaan

Penafian: Kode yang disediakan dalam tutorial ini hanya untuk tujuan pembelajaran. Kami tidak bertanggung jawab atas cara penggunaannya dan tidak bertanggung jawab atas penggunaan kode sumber yang merugikan.