Web di seluruh dunia adalah sumber semua data yang ada dan menyeluruh. Perkembangan pesat yang dilihat oleh internet dalam tiga dekad kebelakangan ini belum pernah terjadi sebelumnya. Akibatnya, web dipasang dengan beratus-ratus terabyte data setiap hari.
Semua data ini mempunyai nilai untuk seseorang tertentu. Sebagai contoh, sejarah penyemakan imbas anda sangat penting untuk aplikasi media sosial, kerana mereka menggunakannya untuk memperibadikan iklan yang mereka tunjukkan kepada anda. Dan terdapat banyak persaingan untuk data ini juga; beberapa MB lebih banyak data dapat memberi kelebihan kepada perniagaan berbanding persaingan mereka.
Perlombongan data dengan Python
Untuk membantu anda yang baru menggunakan data, kami telah menyediakan panduan ini di mana kami akan menunjukkan cara mengikis data dari web menggunakan Python dan Beautiful sup Library.
Kami mengandaikan bahawa anda sudah biasa dengan Python dan HTML, kerana anda akan menggunakan kedua-duanya dengan mengikuti arahan dalam panduan ini.
Berhati-hati dengan laman web mana anda mencuba kemahiran perlombongan data baru anda, kerana banyak laman web menganggap ini mengganggu dan mengetahui bahawa mungkin ada kesan.
Memasang dan menyiapkan Perpustakaan
Sekarang, kita akan menggunakan dua perpustakaan yang akan kita gunakan: pustaka permintaan python untuk memuatkan kandungan dari laman web dan perpustakaan Sup Indah untuk proses pengikisan sebenarnya. Terdapat alternatif untuk BeautifulSoup, ingatlah anda, dan jika anda mengetahui salah satu daripada yang berikut, jangan ragu untuk menggunakannya: Scrappy, Mechanize, Selenium, Portia, kimono, dan ParseHub.
Perpustakaan permintaan boleh dimuat turun dan dipasang dengan perintah pip seperti di bawah:
# permintaan pemasangan pip3
Pustaka permintaan harus dipasang pada peranti anda. Begitu juga, muat turun BeautifulSoup juga:
# pip3 pasang beautifulsoup4
Dengan itu, perpustakaan kami bersedia untuk melakukan beberapa tindakan.
Seperti disebutkan di atas, perpustakaan permintaan tidak banyak menggunakan selain mengambil kandungan dari laman web. Perpustakaan BeautifulSoup dan perpustakaan permintaan mempunyai tempat dalam setiap skrip yang akan anda tulis, dan mereka mesti diimport sebelum masing-masing seperti berikut:
permintaan import $$ dari bs4 import BeautifulSoup sebagai bs
Ini menambahkan kata kunci yang diminta ke ruang nama, memberi isyarat kepada Python makna kata kunci setiap kali penggunaannya diminta. Perkara yang sama berlaku pada kata kunci bs, walaupun di sini kita mendapat faedah memberikan kata kunci yang lebih mudah untuk BeautifulSoup.
laman web = permintaan.dapatkan (URL)Kod di atas mengambil URL halaman web dan membuat rentetan langsung darinya, menyimpannya menjadi pemboleh ubah.
$ webcontent = laman web.kandunganPerintah di atas menyalin kandungan halaman web dan memberikannya ke kandungan web yang berubah-ubah.
Dengan itu, kami selesai dengan permintaan perpustakaan. Yang tinggal hanyalah mengubah pilihan perpustakaan permintaan menjadi pilihan BeautifulSoup.
$ htmlcontent = bs (kandungan web, “html.menghuraikan “)
Ini menguraikan objek permintaan dan mengubahnya menjadi objek HTML yang dapat dibaca.
Dengan semua yang dijaga, kita dapat beralih ke bit pengikisan yang sebenarnya.
Mengikis laman web dengan Python dan BeautifulSoup
Mari teruskan dan lihat bagaimana kita dapat mengikis objek HTML data dengan BeautifulSoup.
Untuk menggambarkan contoh, semasa kami menerangkan sesuatu, kami akan bekerjasama dengan potongan html ini:
Kami dapat mengakses isi coretan ini dengan BeautifulSoup dan menggunakannya pada pemboleh ubah kandungan HTML seperti di bawah:
Kod di atas mencari sebarang tag yang dinamakan
Untuk menyimpan tanda nama secara serentak
ke senarai, kami akan mengeluarkan kod akhir seperti di bawah:
Output akan kembali seperti ini:
Untuk memanggil salah satu
Sekarang mari kita lihat bagaimana memilih
tanda yang sesuai dengan ciri mereka. Untuk memisahkan a , kita perlukan
untuk div dalam sup.find_all ('div', attrs = 'class' = 'Tech_head'):
Ini mengambil
teg.Anda akan mendapat:
Teknologi
Semua tanpa tag.
Terakhir, kami akan membahas bagaimana memilih nilai atribut dalam teg. Kod harus mempunyai teg ini:
Untuk menjalankan nilai yang berkaitan dengan atribut src, anda akan menggunakan yang berikut:
kandungan html.cari ("img") ["src"]Dan output akan berubah sebagai:
"images_4 / a-beginners-guide-to-web-scraping-with-python-and-cantik-sup.jpg "
Oh budak lelaki, itu pasti banyak kerja!
Sekiranya anda merasakan keakraban anda dengan python atau HTML tidak mencukupi atau jika anda hanya terbeban dengan pengikisan web, jangan risau.
Sekiranya anda sebuah perniagaan yang perlu memperoleh jenis data tertentu secara berkala tetapi tidak dapat melakukan pengikisan web sendiri, ada cara mengatasi masalah ini. Tetapi ketahuilah bahawa akan menelan belanja sejumlah wang. Anda dapat mencari seseorang untuk melakukan pengikisan untuk anda, atau anda boleh mendapatkan perkhidmatan data premium dari laman web seperti Google dan Twitter untuk berkongsi data dengan anda. Ini berkongsi sebahagian data mereka dengan menggunakan API, tetapi panggilan API ini terhad setiap hari. Selain itu, laman web seperti ini dapat melindungi data mereka. Biasanya banyak laman web seperti itu sama sekali tidak berkongsi data mereka.
Pemikiran terakhir
Sebelum kita menyelesaikannya, izinkan saya memberitahu anda dengan lantang jika belum jelas; perintah find (), find_all () adalah rakan terbaik anda semasa anda keluar dengan BeautifulSoup. Walaupun ada banyak lagi yang perlu dilindungi untuk menguasai pengikisan data dengan Python, panduan ini semestinya cukup untuk anda yang baru memulakan.