Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pengaturcaraan Pelayan Python: Penghuraian HTML dengan BeautifulSoup

Pengaturcaraan Pelayan Python: Penghuraian HTML dengan BeautifulSoup

PHPz
PHPzasal
2023-06-18 10:32:511054semak imbas

Pengaturcaraan pelayan Python ialah salah satu arahan utama dalam pembangunan web, yang melibatkan banyak tugas, termasuk penghuraian HTML. Dalam Python, kami mempunyai banyak perpustakaan berkuasa untuk memproses fail HTML, yang paling popular ialah BeautifulSoup.

Artikel ini akan memperkenalkan cara menggunakan Python dan BeautifulSoup untuk mengekstrak data daripada fail HTML. Kami akan meneruskan langkah-langkah berikut:

  1. Pasang BeautifulSoup
  2. Muat fail HTML
  3. Buat objek BeautifulSoup
  4. Parse the HTML file
  5. Mengekstrak data

Seterusnya kami akan menerangkan langkah-langkah ini satu persatu.

  1. Pasang BeautifulSoup

Kita boleh menggunakan arahan pip untuk memasang BeautifulSoup, cuma masukkan arahan berikut pada baris arahan:

pip install beautifulsoup4
  1. Memuatkan fail HTML

Sebelum menggunakan BeautifulSoup, kita perlu memuatkan fail HTML ke dalam Python. Kami boleh menggunakan fungsi open() terbina dalam Python untuk membuka fail dan membacanya ke dalam memori menggunakan kaedah read():

with open("example.html") as fp:
    soup = BeautifulSoup(fp)

Dalam kod di atas, kami menggunakan kata kunci dengan untuk membuka example.html fail . Kelebihan ini ialah fail boleh ditutup secara automatik dan masalah sumber fail tidak dikeluarkan kerana penamatan program yang tidak normal dapat dielakkan.

  1. Buat objek BeautifulSoup

Seterusnya, kita perlu menghuraikan fail HTML menjadi objek BeautifulSoup. Kami boleh menggunakan kod berikut untuk mencipta objek BeautifulSoup:

soup = BeautifulSoup(html_doc, 'html.parser')

Dalam kod di atas, kami menggunakan parameter 'html.parser' untuk memberitahu BeautifulSoup menggunakan parser HTML terbina dalam untuk menghuraikan fail HTML.

  1. Menghuraikan fail HTML

Setelah kami mencipta objek BeautifulSoup, kami boleh menghuraikannya. Kita boleh menggunakan kod berikut untuk mencetak keseluruhan fail HTML:

print(soup.prettify())

Dalam contoh ini, menggunakan kaedah prettify() boleh menjadikan output lebih mudah dibaca. Menjalankan kod di atas akan mendapat output keseluruhan fail HTML.

  1. Mengekstrak data

Seterusnya mari kita lihat cara mengekstrak data. Kami boleh menggunakan kod sampel berikut untuk mengekstrak semua hiperpautan:

for link in soup.find_all('a'):
    print(link.get('href'))

Dalam kod di atas, kami menggunakan kaedah find_all() untuk mencari semua elemen "a", dan menggunakan kaedah get() untuk mengekstraknya href atribut.

Kami juga boleh menggunakan kaedah yang serupa dengan pemilih CSS untuk mengekstrak elemen. Sebagai contoh, kita boleh menggunakan kod sampel berikut untuk mengekstrak semua elemen p:

for paragraph in soup.select('p'):
    print(paragraph.text)

Dalam kod di atas, kami telah menggunakan kaedah pilih() dan menggunakan "p" sebagai pemilih.

Dalam aplikasi sebenar, kami mungkin perlu melakukan penghuraian fail HTML yang lebih kompleks mengikut keperluan kami sendiri. Tetapi tidak kira apa kandungan yang perlu kita huraikan, menggunakan BeautifulSoup boleh memudahkan proses.

Ringkasan

Artikel ini memperkenalkan cara menggunakan Python dan BeautifulSoup untuk menghuraikan HTML dan mengekstrak data. Kami belajar cara memasang BeautifulSoup, memuatkan fail HTML, mencipta objek BeautifulSoup, menghuraikan fail HTML dan mengekstrak data. Walaupun artikel ini hanyalah pengenalan pengenalan kepada BeautifulSoup, dengan mempelajari artikel ini, kita seharusnya mempunyai pemahaman yang lebih baik tentang menggunakan BeautifulSoup untuk penghuraian HTML dan pengekstrakan data.

Atas ialah kandungan terperinci Pengaturcaraan Pelayan Python: Penghuraian HTML dengan BeautifulSoup. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn