Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana saya menggunakan sup yang indah untuk menghuraikan html?

Bagaimana saya menggunakan sup yang indah untuk menghuraikan html?

James Robert Taylor
Lepaskan: 2025-03-10 18:54:18
asal
998 orang telah melayarinya

Bagaimana saya menggunakan sup yang indah untuk menghuraikan html?

Sup cantik adalah perpustakaan python yang direka untuk menghuraikan dokumen HTML dan XML. Ia mewujudkan pokok parse dari HTML yang diberikan, membolehkan anda dengan mudah menavigasi, mencari, dan mengubah suai data. Untuk menggunakannya, anda perlu memasangnya menggunakan PIP: Pip Pasang BeautifulSoup4 . Kemudian, anda boleh mengimportnya ke dalam skrip Python anda dan menggunakannya untuk menghuraikan kandungan HTML. Berikut adalah contoh asas:

 <code class="python"> dari BS4 Import BeautifulSoup Import Requests # Ambil Kandungan HTML (Gantikan dengan URL anda) url = & quot; https: //www.example.com" response = requests.get (url) response.raise_for_status () # menaikkan httperror untuk respons yang buruk (4xx atau 5xx) html_content = response.content # parse html soup = BeautifulSoup (html_content, & quot; # Cetak cetakan tag tajuk (soup.find_all (& quot; p & quot;)) Ia kemudian menggunakan <code> BeautifulSoup </code> constructor untuk menghuraikan kandungan HTML, menyatakan "html.parser" sebagai parser. Akhirnya, ia menunjukkan mengakses tag <code> & lt; </code> dan mencari semua <code> & lt; p & gt; </code> tags. Ingatlah untuk mengendalikan pengecualian yang berpotensi seperti ralat rangkaian (<code> requests.exceptions.requestexception </code>) dengan sewajarnya dalam persekitaran pengeluaran.  <h2> Apakah kaedah sup yang paling biasa untuk mengekstrak data dari HTML? </h2> Sebahagian yang paling biasa termasuk:  <ul> <li> <strong> <code> cari () </code> dan <code> find_all () </code>: </strong> Ini adalah sup sup yang indah. <code> cari () </code> Mengembalikan tag pertama yang sepadan dengan kriteria yang ditentukan, sementara <code> find_all () </code> mengembalikan senarai semua tag yang sepadan. Kriteria boleh menjadi nama tag (misalnya, "p", "a"), atribut (misalnya, {"class": "my-class", "id": "my-id"}), atau gabungan kedua-duanya. Anda juga boleh menggunakan ekspresi biasa untuk pemadanan yang lebih kompleks. </li> <strong> <code> pilih () </code>: </strong> Kaedah ini menggunakan pemilih CSS untuk mencari tag. Ini adalah cara yang kuat dan ringkas untuk menargetkan unsur -unsur tertentu, terutamanya apabila berurusan dengan struktur HTML yang kompleks. Sebagai contoh, <code> soup.select (& quot; .my-Class p & quot;) </code> akan mencari semua <code> & lt; p & gt; </code> tag dalam unsur-unsur yang mempunyai kelas "my-class".  Tidak ternilai untuk mendapatkan teks sebenar dari elemen HTML.  <li> <strong> <sode> attrs </sode></strong>
</li>
</ul></code>:  Atribut ini menyediakan akses kepada atribut tag sebagai kamus. Sebagai contoh, <code> tag [& quot; href & quot;] </code> akan mengembalikan nilai <code> href </code> atribut <code> & lt; a & gt; </code> tag. <code> .next_sibling </code>, <code> .previous_sibling </code>, dan lain -lain. Kaedah ini membolehkan melintasi struktur HTML untuk mencari elemen yang berkaitan.  <code> get_text () </code>:  <re> <code class="python"># ... (kod sebelumnya untuk mendapatkan sup) ... first_paragraph = soup.find (& quot; p & quot;) all_paragraphs = soup.find_all (& quot; p & quot; {first_paragraph_text} & quot;) cetak (f & quot; bilangan perenggan: {len (all_paragraphs)} & quot;) </code>  Untuk mengendalikan variasi dan kesilapan yang berpotensi, pertimbangkan strategi ini:  <ul> <li> <strong> Parsing yang teguh: </strong> Gunakan parser yang memaafkan seperti "html.parser" (lalai) yang dibina ke dalam python. Lebih baik mengendalikan HTML yang cacat daripada parser lain seperti "LXML" (yang lebih cepat tetapi lebih ketat). berurusan dengan jenis data yang tidak dijangka). </li> <li> <strong> Pemilihan yang fleksibel: </strong> Gunakan pemilih CSS atau pemadanan atribut fleksibel dalam <code> cari () </code> dan <code> find_all () </code> untuk menampung variasi dalam struktur HTML. Daripada bergantung pada nama kelas atau ID yang mungkin berubah, pertimbangkan untuk menggunakan lebih banyak pemilih atau atribut umum. Gunakan pernyataan bersyarat (contohnya, <code> jika elemen: </code>). </li> <li> <strong> Pembersihan data: </strong> Selepas pengekstrakan, bersihkan data untuk mengendalikan ketidakkonsistenan seperti ruang putih tambahan, aksara baru, atau entiti HTML. Kaedah <code> Python () </code> dan ungkapan biasa berguna untuk ini. </li> </ul> cetak (& quot; tag tajuk tidak dijumpai. & quot;)  </re>
Salin selepas log masuk

boleh mengendalikan sup yang indah javascript yang diberikan kandungan, dan jika tidak, apakah alternatifnya? Sup cantik berfungsi dengan HTML yang pada mulanya dimuat turun; Ia tidak melaksanakan JavaScript. JavaScript menjadikan kandungan secara dinamik selepas beban halaman, sup yang indah hanya melihat hanya html statik, statik.

Ia memuatkan halaman sepenuhnya, membolehkan JavaScript untuk dilaksanakan, dan kemudian anda boleh menggunakan sup yang indah untuk menghuraikan HTML yang dihasilkan dari DOM pelayar. Ini adalah kaedah yang kuat tetapi lebih perlahan.

  • Penulis drama: Sama dengan Selenium, Playwright adalah perpustakaan node.js (dengan pengikat python) untuk automasi web. Ia sering lebih cepat dan lebih moden daripada selenium. Dihapus. Ini biasanya perkhidmatan yang dibayar tetapi boleh menjadi mudah untuk mengikis besar-besaran.
  • Pengikis yang berlebihan boleh membebankan pelayan dan membawa kepada alamat IP anda disekat.

    Atas ialah kandungan terperinci Bagaimana saya menggunakan sup yang indah untuk menghuraikan html?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan Laman Web ini
    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
    Artikel terbaru oleh pengarang
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan