Kikis real estat dari Trulia menggunakan Python

Diterbitkan: 2018-09-15
Daftar Isi menunjukkan
Bagaimana cara memulai scraping Trulia?
Di mana kode untuk mengikis data?
Kode pengikisan data dijelaskan
Jadi data apa yang kami dapatkan dari Trulia?
Menggunakan kode ini dalam bisnis
Butuh bantuan untuk mengekstrak data web?

Trulia adalah situs web yang mengatur toko pada tahun 2005, awalnya dengan daftar real estat di California. Peta interaktif dengan data komuter dan transit menunjukkan waktu mengemudi atau perjalanan properti dari lokasi tertentu di Amerika Serikat, sehingga menjadikan Trulia pilihan ideal untuk mengumpulkan data real estat.

Fitur terbaik Trulia, membuatnya tertarik untuk menggores data real estat.

  1. What Locals Say: What Locals Say, adalah fitur Trulia baru-baru ini, yang memungkinkan pembeli, penjual, dan penyewa rumah untuk mendapatkan pemandangan penduduk setempat dari suatu daerah, lingkungan. Informasi untuk ini dikumpulkan menggunakan jajak pendapat, survei, dan ulasan independen.
  2. Lingkungan Trulia: Trulia baru-baru ini meluncurkan Lingkungan Trulia. Ini adalah fitur unik yang membantu orang mendapatkan lebih banyak informasi tentang daftar properti dari situs webnya. Foto asli, deskripsi, dan fakta tentang area tersebut, bahkan rekaman drone dapat dilihat di fitur ini.
  3. Perlindungan Hukum Lokal: Perlindungan Hukum Lokal adalah layanan yang memberikan informasi tentang undang-undang nondiskriminasi lokal yang berlaku untuk rumah, pekerjaan, serta akomodasi publik. Data ini disediakan di samping daftar properti untuk memudahkan masyarakat yang lebih beragam untuk menemukan akomodasi yang memadai di lingkungan yang nyaman.

Bagaimana cara memulai scraping Trulia?

Untuk pemasangan dan memulai, Anda bisa mendapatkannya dari artikel serupa, di mana kami membahas cara merayapi data dari portal perjalanan terkemuka. Setelah Anda menginstal python dan dependensi lainnya bersama dengan editor kode Atom, kembalilah ke artikel ini, untuk membaca terus.

Di mana kode untuk mengikis data?

Jika Anda bosan dengan teksnya, mari kita langsung ke kodenya. Meskipun kode diberikan di bawah, Anda juga dapat mengunduhnya dari tautan, dan mulai berbisnis. Anda dapat menjalankannya menggunakan perintah python itu sendiri seperti yang mungkin telah Anda lihat di tutorial scraping lainnya. Setelah Anda mengunduh program, cukup buka lokasi di command prompt dan jalankan perintah:

python trulia_extractor.py

Ini akan meminta Anda untuk memasukkan tautan untuk daftar properti Trulia. Setelah Ekstraksi selesai, pesan konfirmasi ditampilkan dan Anda dapat melanjutkan untuk memeriksa folder Anda untuk file JSON dan file HTML yang dibuat.

[bahasa kode="python"]

H:Python_Algorithmic_ProblemsScraping_assignmentsTrulia-Data-Extraction>python trulia_extractor.py
Masukkan Url Daftar Properti Trulia- https://www.trulia.com/p/ny/brooklyn/327-101st-st-1a-brooklyn-ny-11209–2180131215
———- Ekstraksi data selesai. Periksa file json.———-

#!/usr/bin/python
# -*- koding: utf-8 -*-

impor urllib.request
impor urllib.parse
impor urllib.error
dari bs4 impor BeautifulSoup
impor ssl
impor json
impor ast
impor os
dari urllib.request Permintaan impor, urlopen

# Untuk mengabaikan kesalahan sertifikat SSL

ctx = ssl.create_default_context()
ctx.check_hostname = Salah
ctx.verify_mode = ssl.CERT_NONE

# Masukan dari pengguna

url = input('Masukkan Url Daftar Properti Trulia-')

# Membuat situs web percaya bahwa Anda mengaksesnya menggunakan browser mozilla

req = Permintaan(url, header={'User-Agent': 'Mozilla/5.0'})
halaman web = urlopen(req).read()

# Membuat objek BeautifulSoup dari halaman html untuk memudahkan ekstraksi data.

sup = BeautifulSoup(halaman web, 'html.parser')
html = sup.prettify('utf-8')
produk_json = {}

# Blok kode ini akan memberi Anda deskripsi satu baris dari properti yang terdaftar

untuk meta di soup.findAll('meta', attrs={'name': 'description'}):
mencoba:
product_json['deskripsi'] = meta['konten']
merusak
kecuali:
lulus

# Blok kode ini akan memberi Anda tautan dari properti yang terdaftar

untuk tautan di soup.findAll('link', attrs={'rel': 'canonical'}):
mencoba:
product_json['link'] = tautan['href']
merusak
kecuali:
lulus

# Blok kode ini akan memberi Anda harga dan mata uang dari properti yang terdaftar

untuk skrip di soup.findAll('script',
attrs={'type': 'application/ld+json'}):
detail_json = ast.literal_eval(scripts.text.strip())
product_json['harga'] = {}
product_json['price']['amount'] = details_json['offers']['price']
product_json['price']['currency'] = details_json['offers'
]['hargaMata uang']

# Blok kode ini akan memberi Anda deskripsi terperinci tentang properti yang terdaftar

untuk paragraf di soup.findAll('p', attrs={'id': 'propertyDescription'}):
product_json['broad-description'] = paragraf.text.strip()
product_json['ikhtisar'] = []

# Blok kode ini akan memberi Anda poin penting mengenai properti yang terdaftar

untuk div di soup.findAll('div',
attrs={'data-auto-test-id': 'home-details-overview'
}):
untuk divs_second di divs.findAll('div'):
untuk uls di divs_second.findAll('ul'):
untuk lis di uls.findAll('li', text=True, recursive=False):
product_json['overview'].append(lis.text.strip())

# Membuat file json dengan semua informasi yang Anda ekstrak

dengan open('house_details.json', 'w') sebagai outfile:
json.dump(product_json, outfile, indent=4)

# Membuat file html di lokal Anda dengan konten html dari halaman yang Anda urai.

dengan open('output_file.html', 'wb') sebagai file:
file.tulis(html)

print ('———- Ekstraksi data selesai. Periksa file json.———-')
[/kode]

Jika Anda memasukkan HTML yang disebutkan dalam contoh, Anda akan mendapatkan JSON ini disimpan di folder Anda-

[bahasa kode="php"]

{
“deskripsi”: “327 101st St #1A, Brooklyn, NY adalah rumah dengan 3 tempat tidur, 3 kamar mandi, 1302 kaki persegi di penyitaan. Masuk ke Trulia untuk menerima semua informasi penyitaan.”,
“tautan”: “https://www.trulia.com/p/ny/brooklyn/327-101st-st-1a-brooklyn-ny-11209–2180131215”,
"harga": {
“jumlah”: “510000”,
"mata uang": "USD"
},
“broad-description”: “Unit Duplex Sangat Besar dengan lantai 1 menampilkan Ruang Rekreasi Selesai, Ruang Hiburan, dan Kamar Mandi Setengah. Lantai Kedua Memiliki 2 Kamar Tidur, 2 Kamar Mandi Lengkap, Ruang Tamu/Ruang Makan, dan Ruang Terbuka. Ada pemandangan Jembatan Verrazano. Lihat Panduan Penyitaan kami”,
"gambaran": [
“Kondominium”,
“3 Tempat Tidur”,
“3 Kamar Mandi”,
“Dibangun pada tahun 2006”,
“5 hari di Trulia”,
“1.302 kaki persegi”,
“$392/sqft”,
“143 tampilan”
]
}
[/kode]

Kode pengikisan data dijelaskan

Jika Anda ingin memahami kodenya, Anda dapat melihat pernyataan komentar, dan untuk memahami cara kerja modul yang berbeda, Anda perlu sedikit mencari di Google. Tapi yang terpenting disini adalah menggunakan Bs4 atau BeautifulSoup. BeautifulSoup muncul ketika sekelompok pengembang menyadari bahwa banyak kode HTML di internet tidak "terbentuk dengan baik" tetapi berfungsi. Apa yang dihasilkan adalah bahwa ia melakukan pekerjaannya seperti yang diharapkan, dengan beberapa kesalahan kecil yang jarang terjadi, tetapi ketika seseorang mencoba mengurai file HTML yang sama, dia akan menemui hambatan- yaitu dia akan mendapatkan kesalahan bahwa HTML tidak baik -terbentuk. Jika dia mencoba mengubah HTML menjadi pohon atau struktur data lainnya, dia masih akan mendapatkan kesalahan yang sama. Sekarang dia harus duduk dan membersihkan HTML yang ditulis oleh beberapa pengembang yang tinggal di bagian lain dunia. Ini menunda tujuan sebenarnya. Jadi, untuk mempermudah pembuat kode, tim mengembangkan parser yang akan menyerap dan meneruskan file HTML dan membuat objek BeautifulSoup dengan node dan atribut yang dapat Anda lintasi dengan sangat mudah, hampir seperti Anda melintasi pohon.

Misalnya ketika saya menulis kode-

[bahasa kode="php"]

untuk paragraf di soup.findAll('p', attrs={'id': 'propertyDescription'}):
product_json['broad-description'] = paragraf.text.strip()
[/kode]

Saya mencoba mengekstrak teks di dalam tag <p> yang memiliki id = propertyDescription di dalamnya. Sederhana bukan? Nah, Anda perlu memeriksa situs web mereka untuk lebih memahaminya dan mencoba eksplorasi diri untuk mengekstrak lebih banyak data dari file HTML yang juga dibuat saat menjalankan program. Berikut adalah tautan untuk HTML yang dihasilkan saat menjalankan kode dengan tautan yang disediakan di atas.

Jadi data apa yang kami dapatkan dari Trulia?

Jadi apa yang dapat kami ekstrak menggunakan kode sederhana ini? Jika Anda melihat JSON dengan benar, Anda dapat melihat bahwa kami telah mengekstrak cukup banyak.

Pertama, kami mendapatkan deskripsi, yang merupakan semacam tajuk yang dapat Anda gunakan untuk daftar, kemudian tautan jika Anda membutuhkannya karena alasan apa pun, dan diikuti oleh harga yang dipecah menjadi jumlah serta mata uang. Deskripsi luas terdiri dari deskripsi pemilik yang melukiskan gambaran di kepala seseorang tentang bagaimana rumahnya. Ikhtisar berisi sejumlah aspek kunci. Mengapa mereka tidak dalam format kunci: nilai?

Yah, itu karena tidak ada dua rumah yang mungkin memiliki aspek atau hal yang sama untuk dibanggakan. Itulah sebabnya judul ini berisi daftar fitur penting yang mungkin diminati oleh calon pembeli. Ini dapat mencakup berbagai hal seperti jumlah tempat tidur, dan kamar mandi ketika rumah dibangun, sejak terdaftar di Trulia, luas total, harga per kaki persegi, dan jumlah orang yang telah melihat cantuman hingga saat ini, dan banyak lagi.

Jadi Anda memahami bahwa hal-hal ini dapat berubah, dan mungkin jika Anda menjalankan program pada suatu daftar suatu hari, Anda mungkin tidak mendapatkan JSON yang sama seperti yang Anda dapatkan sehari sebelumnya dari daftar yang sama.

Menggunakan kode ini dalam bisnis

Pengaturan pengikisan Trulia ini dapat digunakan dalam bisnis Anda dalam beberapa cara. Anda dapat membuat CSV tautan cantuman, dan menjalankan kode pada baris individual CSV, menggunakan skrip otomatisasi. Apa yang akan lebih baik adalah Anda dapat membangun sistem, yang akan mengambil semua daftar lokasi ketika lokasi dimasukkan ke dalamnya, dan kemudian menjalankan kode ini untuk mengambil semua data dari setiap daftar. Ini dapat dengan mudah dicapai dengan menggunakan keahlian penyedia layanan web scraping seperti PromptCloud.

Data adalah uang dalam ekonomi yang digerakkan oleh data saat ini dan memanfaatkan semua data yang tersedia secara gratis di internet ini terbukti sangat menguntungkan di setiap jalan bisnis yang Anda putuskan untuk dimasuki. Saya akan menandatangani surat itu dan membiarkan Anda merenungkan faktanya.


Butuh bantuan untuk mengekstrak data web?

Dapatkan data bersih dan siap pakai dari situs web untuk aplikasi bisnis melalui layanan pengikisan web kami.

  • Tersembunyi
  • Tersembunyi
  • Bidang ini untuk tujuan validasi dan tidak boleh diubah.

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.