Sup Cantik

Tutorial Python BeautifulSoup Untuk Pemula

Tutorial Python BeautifulSoup Untuk Pemula
Pengikisan laman web sangat penting dalam dunia masa kini. Semua orang memerlukan data, dari pelbagai sumber termasuk laman web. Dalam artikel ini, kita akan melihat cara menguraikan html dengan pustaka sup. Pengambilan data yang diperlukan daripada sekumpulan huruf dan simbol, berkat perpustakaan yang hebat ini, menjadi lebih mudah. BeautifulSoup yang ditulis dalam Python boleh dipasang dengan mudah di mesin anda menggunakan alat pemasangan pip Python. Perintah berikut akan membantu memasang perpustakaan:

pip pasang BeautifulSoup4

Untuk memeriksa sama ada pemasangan berjaya, aktifkan shell interaktif Python dan import BeautifulSoup. Sekiranya tidak ada ralat yang muncul, ini bermakna semuanya berjalan lancar.  Sekiranya anda tidak tahu bagaimana caranya, ketik perintah berikut di terminal anda.

$ ular sawa
Python 3.5.2 (lalai, 14 Sep 2017, 22:51:06)
[GCC 5.4.0 20160609] di linux
Ketik "bantuan", "hak cipta", "kredit" atau "lesen" untuk maklumat lebih lanjut.
>>> import bs4

Untuk bekerja dengan perpustakaan BeautifulSoup, anda mesti menghantar html. Semasa bekerja dengan laman web sebenar, anda boleh mendapatkan html laman web menggunakan pustaka permintaan. Pemasangan dan penggunaan pustaka permintaan berada di luar ruang lingkup artikel ini, namun anda dapat menjumpai dokumentasi yang sangat senang digunakan. Untuk artikel ini, kita hanya akan menggunakan html dalam rentetan python yang akan kita panggil html.

html = "" "

Profil Pekerja



Nama:Dr Peter Parker

Pekerjaan:Jurutera Pembelajaran Mesin

Telefon:+12345678910





"" "

Untuk menggunakan beautifulsoup, kami mengimportnya ke dalam kod menggunakan kod di bawah:

dari bs4 import BeautifulSoup

Ini akan memperkenalkan BeautifulSoup ke ruang nama kami dan kami dapat menggunakannya dalam menguraikan rentetan kami.

sup = BeautifulSoup (html, "lxml")

Sekarang, sup adalah objek BeautifulSoup jenis bs4.BeautifulSoup dan kita dapat melakukan semua operasi BeautifulSoup di suppemboleh ubah.

Mari lihat beberapa perkara yang boleh kita lakukan dengan BeautifulSoup sekarang.

MENJADIKAN YANG SANGAT, CANTIK

Apabila BeautifulSoup menguraikan html, formatnya biasanya tidak terbaik. Jaraknya cukup mengerikan. Tagnya sukar didapati. Berikut adalah gambar untuk menunjukkan rupa mereka semasa anda mencetaknya sup:

Walau bagaimanapun, ada penyelesaian untuk ini. Penyelesaiannya memberikan html jarak yang sempurna, menjadikan semuanya kelihatan baik. Penyelesaian ini wajar disebut "kepura-puraan".

Diakui, anda mungkin tidak dapat menggunakan ciri ini sepanjang masa; namun ada kalanya anda mungkin tidak mempunyai akses ke alat elemen pemeriksaan penyemak imbas web. Pada masa kekurangan sumber, anda akan menganggap kaedah prettify sangat berguna.

Inilah cara anda menggunakannya:

sup.prettif ()

Markup akan kelihatan dengan jarak yang betul, seperti pada gambar di bawah:

Apabila anda menggunakan kaedah prettif pada sup, hasilnya bukan lagi jenis bs4.Sup Cantik. Hasilnya sekarang taip 'unicode'. Ini bermakna anda tidak boleh menggunakan kaedah BeautifulSoup yang lain, namun sup itu sendiri tidak terjejas sehingga kami selamat.

MENCARI TAG FAVORIT KAMI

HTML terdiri daripada tag. Ia menyimpan semua data di dalamnya, dan di tengah-tengah semua kekacauan itu terletak data yang kita perlukan. Pada asasnya, ini bermaksud apabila kita menemui tanda yang betul, kita dapat memperoleh apa yang kita perlukan.

Jadi bagaimana kita dapat mencari tanda yang betul? Kami menggunakan kaedah cari dan cari BeautifulSoup.

Inilah cara mereka berfungsi:

The cari kaedah mencari tag pertama dengan nama yang diperlukan dan mengembalikan objek jenis bs4.unsur.Tag.

The cari_semua kaedah sebaliknya, mencari semua tag dengan nama tag yang diperlukan dan mengembalikannya sebagai senarai jenis bs4.unsur.ResultSet. Semua item dalam senarai adalah jenis bs4.unsur.Tandakan, supaya kami dapat menjalankan pengindeksan dalam senarai dan meneruskan penerokaan kumpulan cantik kami.

Mari lihat beberapa kod. Mari cari semua tag div:

sup.cari ("div")

Kami akan mendapat hasil berikut:

Nama:Dr Peter Parker

Memeriksa pemboleh ubah html, anda akan melihat bahawa ini adalah tag div pertama.

sup.find_all ("div")

Kami akan mendapat hasil berikut:

[
Nama:Dr Peter Parker
,
Pekerjaan:Jurutera Pembelajaran Mesin
,
Telefon:+12345678910
,
,
]

Ia mengembalikan senarai.  Sekiranya misalnya anda mahukan tag div ketiga, anda jalankan kod berikut:

sup.cari_all ("div") [2]

Ia akan mengembalikan yang berikut:

Telefon:+12345678910

MENCARI SIKAP TAG FAVORIT KAMI

Sekarang kita telah melihat cara mendapatkan tag kegemaran kita, bagaimana mendapatkan atribut mereka?

Anda mungkin berfikir pada saat ini: “Untuk apa kita memerlukan atribut?". Baik, banyak kali, kebanyakan data yang kita perlukan adalah alamat e-mel dan laman web. Data semacam ini biasanya dihubungkan di laman web dengan pautan dalam atribut "href".

Apabila kita telah mengekstrak tag yang diperlukan, menggunakan kaedah find atau find_all, kita dapat memperoleh atribut dengan menerapkan atrs. Ini akan mengembalikan kamus atribut dan nilainya.

Untuk mendapatkan atribut e-mel misalnya, kita mendapat tag yang merangkumi maklumat yang diperlukan dan melakukan perkara berikut.

sup.find_all ("a") [0].atrs

Yang akan memberikan hasil berikut:

'href': 'mailto: [e-mel dilindungi]'

Perkara yang sama untuk atribut laman web.

sup.find_all ("a") [1].atrs

Yang akan memberikan hasil berikut:

'href': '
http: // pparkerworks.com'

Nilai yang dikembalikan adalah kamus dan sintaks kamus biasa dapat diterapkan untuk mendapatkan kunci dan nilai.

Mari kita lihat ibu bapa dan anak-anak

Terdapat tanda di mana-mana. Kadang-kadang, kita ingin mengetahui apa tanda anak-anak dan apakah tanda ibu bapa.

Sekiranya anda belum tahu apa itu tag ibu bapa dan anak, penjelasan ringkas ini cukup: tag induk adalah tag luar langsung dan anak adalah tag dalaman langsung dari tag yang dimaksudkan.

Melihat html kami, body tag adalah induk dari semua tag div. Juga, teg tebal dan tanda sauh adalah anak dari tanda div, jika berlaku kerana tidak semua tag div memiliki tag anchor.

Oleh itu, kita boleh mengakses tag induk dengan memanggil cariPetua kaedah.

sup.cari ("div").cari Ibu bapa ()

Ini akan mengembalikan keseluruhan label badan:


Nama:Dr Peter Parker

Pekerjaan:Jurutera Pembelajaran Mesin

Telefon:+12345678910



Untuk mendapatkan tanda anak dari tanda div keempat, kami memanggil cari Kanak-kanak kaedah:

sup.cari_all ("div") [4].cariAnak ()

Ia mengembalikan perkara berikut:

[Laman web:, kerja-kerja pparker.com]

APA YANG ADA UNTUK KITA?

Semasa melayari laman web, kami tidak melihat tag di mana-mana di skrin. Yang kita lihat adalah kandungan tag yang berbeza. Bagaimana jika kita mahukan kandungan tag, tanpa semua tanda kurung membuat hidup tidak selesa? Itu tidak sukar, yang perlu kita lakukan hanyalah menelefon get_text kaedah pada tag pilihan dan kami mendapatkan teks dalam tag dan jika tag tersebut mempunyai tag lain di dalamnya, ia juga mendapat nilai teks mereka.

Inilah contohnya:

sup.cari ("badan").get_text ()

Ini mengembalikan semua nilai teks dalam teg badan:

Nama: Dr Peter Parker
Pekerjaan: Jurutera Pembelajaran Mesin
Telefon: +12345678910
E-mel: [dilindungi e-mel]
Laman web: pparkerworks.com

KESIMPULAN

Itulah yang kami dapat untuk artikel ini. Walau bagaimanapun, masih ada perkara menarik yang boleh dilakukan dengan sup cantik. Anda boleh melihat dokumentasi atau menggunakannya dir (BeautfulSoup) pada shell interaktif untuk melihat senarai operasi yang dapat dijalankan pada objek BeautifulSoup. Itu sahaja dari saya hari ini, sehingga saya menulis lagi.

Trackpad dan Mouse Pointer pada skrin Windows AppyMouse untuk Tablet Windows
Pengguna tablet sering kehilangan penunjuk tetikus, terutama ketika mereka biasa menggunakan komputer riba. Telefon pintar dan tablet skrin sentuh dil...
Butang tetikus tengah tidak berfungsi pada Windows 10
The butang tetikus tengah membantu anda menelusuri halaman web dan skrin yang panjang dengan banyak data. Sekiranya ia berhenti, anda akan menggunakan...
Cara menukar butang tetikus Kiri & Kanan pada PC Windows 10
Sudah menjadi kebiasaan bahawa semua peranti tetikus komputer dirancang secara ergonomik untuk pengguna tangan kanan. Tetapi ada peranti tetikus yang ...