Rumah > pembangunan bahagian belakang > Tutorial Python > Mengikis Web dan Menghuraikan HTML dalam Python dengan Sup Cantik

Mengikis Web dan Menghuraikan HTML dalam Python dengan Sup Cantik

Linda Hamilton
Lepaskan: 2025-01-10 12:15:41
asal
969 orang telah melayarinya

Manfaatkan Kuasa Mengikis Web dengan Python dan Sup Cantik: Contoh Muzik MIDI

Internet ialah khazanah maklumat, tetapi mengaksesnya secara pengaturcaraan boleh menjadi mencabar tanpa API khusus. Pustaka Beautiful Soup Python menawarkan penyelesaian yang berkuasa, membolehkan anda mengikis dan menghuraikan data terus daripada halaman web.

Mari kita terokai ini dengan mengikis data MIDI untuk melatih rangkaian saraf Magenta bagi menjana muzik gaya Nintendo klasik. Kami akan mendapatkan fail MIDI daripada Arkib Muzik Permainan Video (VGM).

Menyediakan Persekitaran Anda

Pastikan anda memasang Python 3 dan pip. Adalah penting untuk mencipta dan mengaktifkan persekitaran maya sebelum memasang kebergantungan:

<code class="language-bash">pip install requests==2.22.0 beautifulsoup4==4.8.1</code>
Salin selepas log masuk
Salin selepas log masuk

Kami menggunakan Beautiful Soup 4 (Beautiful Soup 3 tidak lagi diselenggara).

Mengikis dan Menghuraikan dengan Permintaan dan Sup Cantik

Mula-mula, mari ambil HTML dan buat objek BeautifulSoup:

<code class="language-python">import requests
from bs4 import BeautifulSoup

vgm_url = 'https://www.vgmusic.com/music/console/nintendo/nes/'
html_text = requests.get(vgm_url).text
soup = BeautifulSoup(html_text, 'html.parser')</code>
Salin selepas log masuk

Objek soup membenarkan navigasi HTML. soup.title memberikan tajuk halaman; print(soup.get_text()) memaparkan semua teks.

Menguasai Kuasa Sup Cantik

Kaedah find() dan find_all() adalah penting. soup.find() menyasarkan elemen tunggal (mis., soup.find(id='banner_ad').text mendapat teks iklan sepanduk). soup.find_all() berulang melalui berbilang elemen. Contohnya, ini mencetak semua URL hiperpautan:

<code class="language-python">for link in soup.find_all('a'):
    print(link.get('href'))</code>
Salin selepas log masuk

find_all() menerima hujah seperti ungkapan biasa atau atribut teg untuk penapisan yang tepat. Rujuk dokumentasi Beautiful Soup untuk ciri lanjutan.

Menavigasi dan Menghuraikan HTML

Sebelum menulis kod penghuraian, periksa HTML yang diberikan penyemak imbas. Setiap halaman web adalah unik; pengekstrakan data selalunya memerlukan kreativiti dan percubaan.

Web Scraping and Parsing HTML in Python with Beautiful Soup

Matlamat kami adalah untuk memuat turun fail MIDI yang unik, tidak termasuk pendua dan campuran semula. Alat pembangun penyemak imbas (klik kanan, "Periksa") membantu mengenal pasti elemen HTML untuk akses program.

Web Scraping and Parsing HTML in Python with Beautiful Soup

Mari kita gunakan find_all() dengan ungkapan biasa untuk menapis pautan yang mengandungi fail MIDI (tidak termasuk yang mempunyai tanda kurung dalam nama mereka):

Buat nes_midi_scraper.py:

<code class="language-python">import re
import requests
from bs4 import BeautifulSoup

vgm_url = 'https://www.vgmusic.com/music/console/nintendo/nes/'
html_text = requests.get(vgm_url).text
soup = BeautifulSoup(html_text, 'html.parser')

if __name__ == '__main__':
    attrs = {'href': re.compile(r'\.mid$')}
    tracks = soup.find_all('a', attrs=attrs, string=re.compile(r'^((?!\().)*$'))
    count = 0
    for track in tracks:
        print(track)
        count += 1
    print(len(tracks))</code>
Salin selepas log masuk

Ini menapis fail MIDI, mencetak teg pautannya dan memaparkan jumlah kiraan. Lari dengan python nes_midi_scraper.py.

Memuat turun Fail MIDI

Sekarang, mari muat turun fail MIDI yang ditapis. Tambahkan fungsi download_track pada nes_midi_scraper.py:

<code class="language-bash">pip install requests==2.22.0 beautifulsoup4==4.8.1</code>
Salin selepas log masuk
Salin selepas log masuk

Fungsi ini memuat turun setiap trek dan menyimpannya dengan nama fail yang unik. Jalankan skrip dari direktori simpan yang anda inginkan. Anda harus memuat turun kira-kira 2230 fail MIDI (bergantung pada kandungan semasa tapak web).

Web Scraping and Parsing HTML in Python with Beautiful Soup

Meneroka Potensi Web

Pengikisan web membuka pintu kepada set data yang luas. Ingat bahawa perubahan halaman web boleh memecahkan kod anda; pastikan skrip anda dikemas kini. Gunakan perpustakaan seperti Mido (untuk pemprosesan data MIDI) dan Magenta (untuk latihan rangkaian saraf) untuk membina asas ini.

Atas ialah kandungan terperinci Mengikis Web dan Menghuraikan HTML dalam Python dengan Sup Cantik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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