


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:
pip install requests==2.22.0 beautifulsoup4==4.8.1
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:
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')
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:
for link in soup.find_all('a'): print(link.get('href'))
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.
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.
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
:
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))
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
:
pip install requests==2.22.0 beautifulsoup4==4.8.1
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).
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!

Pythonisbothompiledandintinterpreted.whenyourunapythonscript, itisfirstompiledintobytecode, yang manaThenexecutedbythonvirtualmachine (pvm).

Python bukan pelaksanaan line-by-line, tetapi dioptimumkan dan pelaksanaan bersyarat berdasarkan mekanisme penterjemah. Jurubahasa menukarkan kod ke bytecode, dilaksanakan oleh PVM, dan mungkin pretompile ekspresi malar atau mengoptimumkan gelung. Memahami mekanisme ini membantu mengoptimumkan kod dan meningkatkan kecekapan.

Terdapat banyak kaedah untuk menyambungkan dua senarai dalam Python: 1. Pengendali menggunakan, yang mudah tetapi tidak cekap dalam senarai besar; 2. Gunakan kaedah Extend, yang cekap tetapi akan mengubah suai senarai asal; 3. Gunakan operator =, yang kedua -duanya cekap dan boleh dibaca; 4. Gunakan fungsi itertools.Chain, yang efisien memori tetapi memerlukan import tambahan; 5. Penggunaan senarai parsing, yang elegan tetapi mungkin terlalu kompleks. Kaedah pemilihan harus berdasarkan konteks dan keperluan kod.

Terdapat banyak cara untuk menggabungkan senarai Python: 1. Menggunakan pengendali, yang mudah tetapi tidak memori yang cekap untuk senarai besar; 2. Gunakan kaedah Extend, yang cekap tetapi akan mengubah suai senarai asal; 3. Gunakan itertools.chain, yang sesuai untuk set data yang besar; 4. Penggunaan * pengendali, bergabung dengan senarai kecil hingga sederhana dalam satu baris kod; 5. Gunakan numpy.concatenate, yang sesuai untuk set data dan senario yang besar dengan keperluan prestasi tinggi; 6. Gunakan kaedah tambahan, yang sesuai untuk senarai kecil tetapi tidak cekap. Apabila memilih kaedah, anda perlu mempertimbangkan saiz senarai dan senario aplikasi.

Compiledlanguagesofferspeedandsecurity, whilintpretedLanguagesprovideoeSeAfuseAndPortability.1) compiledLanguageslikec arefasterandsecureButhavelongerDevelopmentCyclesandplatformdependency.2) interpretedLanguagePyePyhonareeAseAreeAseaneAseaneSioSioSioSioSioSioSioSioSioSioSioSioSioSioSioSioSioSeaneaneAseaneaneAseaneaneAdoSioSiAdaSiAdoeSeaneAdoeSeaneAdoeSeanDoReAseanDOREPYHOREADOREB

Di Python, A untuk gelung digunakan untuk melintasi objek yang boleh dimakan, dan gelung sementara digunakan untuk melakukan operasi berulang kali apabila keadaan berpuas hati. 1) Untuk contoh gelung: melintasi senarai dan mencetak unsur -unsur. 2) Walaupun contoh gelung: Tebak permainan nombor sehingga anda rasa betul. Menguasai prinsip kitaran dan teknik pengoptimuman dapat meningkatkan kecekapan dan kebolehpercayaan kod.

Untuk menggabungkan senarai ke dalam rentetan, menggunakan kaedah Join () dalam Python adalah pilihan terbaik. 1) Gunakan kaedah Join () untuk menggabungkan elemen senarai ke dalam rentetan, seperti '' .join (my_list). 2) Untuk senarai yang mengandungi nombor, tukar peta (str, nombor) ke dalam rentetan sebelum menggabungkan. 3) Anda boleh menggunakan ekspresi penjana untuk pemformatan kompleks, seperti ','. Sertai (f '({Fruit})' forfruitinFruits). 4) Apabila memproses jenis data bercampur, gunakan peta (str, mixed_list) untuk memastikan semua elemen dapat ditukar menjadi rentetan. 5) Untuk senarai besar, gunakan '' .join (large_li

Pythonusesahybridapproach, combiningcompilationtobytecodeandinterpretation.1) codeiscompiledtopplatform-independentbytecode.2) byteCodeisinterpretedbythepythonvirtualmachine, enhancingficiencyAndortability.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Dreamweaver CS6
Alat pembangunan web visual

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular
