Pengikisan Web dengan Python: Panduan Pemula

Diterbitkan: 2016-10-10

Di dunia Big Data, layanan Scraping Web atau ekstraksi Data adalah persyaratan utama untuk Big Data Analytics. Mengambil data dari web telah menjadi hampir tak terelakkan bagi perusahaan untuk bertahan dalam bisnis. Pertanyaan berikutnya yang muncul adalah bagaimana cara melakukan web scraping sebagai pemula.

Python penggores web

Data dapat diekstraksi atau diambil dari sumber web menggunakan sejumlah metode. Situs web populer seperti Google, Facebook, atau Twitter menawarkan API untuk melihat dan mengekstrak data yang tersedia secara terstruktur. Ini mencegah penggunaan metode lain yang mungkin tidak disukai oleh penyedia API. Namun, permintaan untuk merayapi situs web muncul ketika informasi tersebut tidak siap ditawarkan oleh situs web. Python, bahasa pemrograman open-source sering digunakan untuk Web Scraping karena ekosistemnya yang sederhana dan kaya. Ini berisi perpustakaan yang disebut "BeautifulSoup" yang menjalankan tugas ini. Mari kita lihat lebih dalam tentang web scraping menggunakan python.

Menyiapkan Lingkungan Python:

Untuk melakukan pengikisan web menggunakan Python, pertama-tama Anda harus menginstal Lingkungan Python, yang memungkinkan Anda menjalankan kode yang ditulis dalam bahasa python. Perpustakaan melakukan pengikisan data;

Beautiful Soup adalah pustaka python yang nyaman digunakan. Ini adalah salah satu alat terbaik untuk mengekstrak informasi dari halaman web. Profesional dapat merayapi informasi dari halaman web dalam bentuk tabel, daftar, atau paragraf. Urllib2 adalah perpustakaan lain yang dapat digunakan dalam kombinasi dengan perpustakaan BeautifulSoup untuk mengambil halaman web. Filter dapat ditambahkan untuk mengekstrak informasi spesifik dari halaman web. Urllib2 adalah modul Python yang dapat mengambil URL.

Untuk MACOSX:

Untuk menginstal pustaka Python di MAC OSX, pengguna perlu membuka terminal win dan mengetikkan perintah berikut, satu perintah pada satu waktu:

sudoeasy_install pip

instal pip BeautifulSoup4

pip instal lxml

Untuk pengguna Windows 7 & 8:

Pengguna Windows 7 & 8 perlu memastikan bahwa lingkungan python terinstal terlebih dahulu. Setelah lingkungan diinstal, buka command prompt dan temukan cara untuk root direktori C:/, dan ketik perintah berikut:

easy_install BeautifulSoup4

easy_installxml

Setelah perpustakaan diinstal, sekarang saatnya untuk menulis kode pengikisan data.

Menjalankan Python:

Pengikisan data harus dilakukan untuk tujuan yang berbeda seperti untuk menjelajah stok toko ritel saat ini. Pertama, browser web diperlukan untuk menavigasi situs web yang berisi data ini. Setelah mengidentifikasi tabel, klik kanan di mana saja di atasnya, lalu pilih elemen periksa dari daftar menu tarik-turun. Ini akan menyebabkan jendela pop-up di bagian bawah atau samping layar Anda yang menampilkan kode Html situs web. Peringkat muncul dalam tabel. Anda mungkin perlu memindai data HTML hingga menemukan baris kode yang menyorot tabel di halaman web.

Python menawarkan beberapa alternatif lain untuk pengikisan HTML selain dari BeautifulSoup. Mereka termasuk:

  • kasar
  • goresan
  • Mekanisasi

Pengikisan web mengubah data tidak terstruktur dari kode HTML menjadi bentuk data terstruktur seperti data tabular di lembar kerja Excel. Pengikisan web dapat dilakukan dengan banyak cara mulai dari penggunaan Google Documents hingga bahasa pemrograman. Bagi orang yang tidak memiliki pengetahuan pemrograman atau kompetensi teknis, dimungkinkan untuk memperoleh data web dengan menggunakan layanan web scraping yang menyediakan data siap pakai dari situs web pilihan Anda.

Tag HTML:

Untuk melakukan pengikisan web, pengguna harus memiliki pengetahuan yang baik tentang tag HTML. Mungkin sangat membantu untuk mengetahui bahwa tautan HTML didefinisikan menggunakan tag jangkar yaitu tag <a>, “<a href=“https://…”>Tautan harus ada di sini </a>”. Daftar HTML terdiri dari daftar <ul> (tidak berurutan) dan <ol> (terurut). Item daftar dimulai dengan <li>.

Tabel HTML didefinisikan dengan<Table>, baris sebagai <tr> dan kolom dibagi menjadi data sebagai <td>;

  • <!DOCTYPE html> : Dokumen HTML dimulai dengan deklarasi tipe dokumen
  • Bagian utama dari dokumen HTML dalam bentuk teks biasa yang tidak diformat didefinisikan oleh tag <body> dan </body>
  • Judul dalam HTML didefinisikan menggunakan tag heading dari <h1> hingga <h5>
  • Paragraf didefinisikan dengan tag <p> dalam HTML
  • Seluruh dokumen HTML terdapat di antara <html> dan </html>

Menggunakan BeautifulSoup dalam Menggores:

Saat menggores halaman web menggunakan BeautifulSoup, perhatian utama adalah mengidentifikasi tujuan akhir. Misalnya, jika Anda ingin mengekstrak daftar dari halaman web, diperlukan pendekatan langkah bijaksana:

  • Langkah pertama dan terpenting adalah mengimpor perpustakaan yang diperlukan:

#import perpustakaan yang digunakan untuk membuat kueri situs web

impor urllib2

#tentukan url wiki = “https://”

#Kueri situs web dan kembalikan html ke variabel 'halaman'

halaman = urllib2.urlopen(wiki)

#import fungsi sup Indah untuk mengurai data yang dikembalikan dari situs web

dari bs4 impor BeautifulSoup

#Parsing html di variabel 'page', dan simpan dalam format Beautiful Soup

sup = Sup Cantik(halaman)

  • Gunakan fungsi "percantik" untuk memvisualisasikan struktur bersarang halaman HTML
  • Bekerja dengan tag Soup:

Soup<tag> digunakan untuk mengembalikan konten antara tag pembuka dan penutup termasuk tag.

  1. Dalam[30]:sup.title

Keluar[30]:<title>Daftar Presiden di India hingga 2010 – Wikipedia, ensiklopedia gratis</title>

  1. sup.<tag>.string: Mengembalikan string dalam tag yang diberikan
  2. Dalam [38]:sup.title.string
  3. Keluar[38]:u 'Daftar Presiden di India dan Brasil hingga 2010 di India – Wikipedia, ensiklopedia bebas'
  4. Temukan semua tautan di dalam tag <a> halaman: Beri tag pada tautan menggunakan tag “<a>”. Jadi, gunakan opsi soup.a dan itu akan mengembalikan tautan yang tersedia di halaman web. Ayo lakukan.
  5. Dalam [40]:sup.a

Keluar[40]:<a id="top"></a>

  • Temukan tabel yang tepat:

Sebagai tabel untuk menarik informasi tentang Presiden di India dan Brasil hingga 2010 sedang dicari, mengidentifikasi tabel yang tepat terlebih dahulu adalah penting. Berikut adalah perintah untuk merayapi informasi yang disertakan dalam semua tag tabel.

all_tables= sup.find_all('tabel')

Identifikasi tabel yang tepat dengan menggunakan atribut "kelas" dari tabel yang perlu menyaring tabel yang tepat. Setelah itu, periksa nama kelas dengan mengklik kanan pada tabel halaman web yang diperlukan sebagai berikut:

  1. Memeriksa elemen
  2. Salin nama kelas atau temukan nama kelas dari tabel kanan dari output perintah terakhir.

right_table=soup.find('table', class_='wikitable sortable plainrowheaders')

kanan_tabel

Begitulah cara kita bisa mengidentifikasi tabel yang tepat.

  • Ekstrak informasi ke DataFrame: Ada kebutuhan untuk mengulangi setiap baris (tr) dan kemudian menetapkan setiap elemen tr (td) ke variabel dan menambahkannya ke daftar. Mari kita menganalisis struktur HTML Tabel dari tabel. (ekstrak informasi untuk judul tabel <th>)

Untuk mengakses nilai setiap elemen, ada kebutuhan untuk menggunakan opsi “find(text=True)” dengan setiap elemen. Akhirnya, ada data dalam kerangka data.

Ada berbagai cara lain untuk merayapi data menggunakan "BeautifulSoup" yang mengurangi upaya manual untuk mengumpulkan data dari halaman web. Kode yang ditulis dalam BeautifulSoup dianggap lebih kuat daripada ekspresi reguler. Metode pengikisan web yang kami diskusikan menggunakan pustaka "BeautifulSoup" dan "urllib2" dengan Python. Itu tadi panduan singkat pemula untuk mulai menggunakan Python untuk web scraping.

Nantikan artikel kami berikutnya tentang bagaimana pengikisan web memengaruhi pertumbuhan pendapatan Anda.

Berencana untuk memperoleh data dari web untuk ilmu data? Kami di sini untuk membantu. Beri tahu kami tentang kebutuhan Anda.