suchen
HeimBackend-EntwicklungPython-TutorialWeb Scraping und Parsing von HTML in Python mit Beautiful Soup

Nutzen Sie die Kraft des Web Scraping mit Python und Beautiful Soup: Ein MIDI-Musikbeispiel

Das Internet ist eine Schatzkammer an Informationen, aber der programmgesteuerte Zugriff darauf kann ohne dedizierte APIs eine Herausforderung sein. Die Beautiful Soup-Bibliothek von Python bietet eine leistungsstarke Lösung, mit der Sie Daten direkt von Webseiten extrahieren und analysieren können.

Lassen Sie uns dies untersuchen, indem wir MIDI-Daten extrahieren, um ein Magenta-Neuronales Netzwerk für die Erzeugung klassischer Nintendo-Musik zu trainieren. Wir beziehen MIDI-Dateien aus dem Video Game Music Archive (VGM).

Einrichten Ihrer Umgebung

Stellen Sie sicher, dass Python 3 und pip installiert sind. Es ist wichtig, eine virtuelle Umgebung zu erstellen und zu aktivieren, bevor Abhängigkeiten installiert werden:

pip install requests==2.22.0 beautifulsoup4==4.8.1

Wir verwenden Beautiful Soup 4 (Beautiful Soup 3 wird nicht mehr gepflegt).

Scraping und Parsing mit Anfragen und schöner Suppe

Zuerst holen wir uns den HTML-Code und erstellen ein BeautifulSoup-Objekt:

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')

Das soup-Objekt ermöglicht die Navigation im HTML. soup.title gibt den Seitentitel an; print(soup.get_text()) zeigt den gesamten Text an.

Die Kraft der schönen Suppe meistern

Die Methoden find() und find_all() sind unerlässlich. soup.find() zielt auf einzelne Elemente ab (z. B. erhält soup.find(id='banner_ad').text Banner-Werbetext). soup.find_all() iteriert durch mehrere Elemente. Dies druckt beispielsweise alle Hyperlink-URLs:

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

find_all() akzeptiert Argumente wie reguläre Ausdrücke oder Tag-Attribute für eine präzise Filterung. Weitere Informationen zu erweiterten Funktionen finden Sie in der Beautiful Soup-Dokumentation.

HTML navigieren und analysieren

Bevor Sie Parsing-Code schreiben, prüfen Sie den vom Browser gerenderten HTML-Code. Jede Webseite ist einzigartig; Die Datenextraktion erfordert oft Kreativität und Experimentierfreudigkeit.

Web Scraping and Parsing HTML in Python with Beautiful Soup

Unser Ziel ist es, einzigartige MIDI-Dateien herunterzuladen, ausgenommen Duplikate und Remixe. Browser-Entwicklertools (Rechtsklick, „Inspizieren“) helfen dabei, HTML-Elemente für den programmgesteuerten Zugriff zu identifizieren.

Web Scraping and Parsing HTML in Python with Beautiful Soup

Verwenden wir find_all() mit regulären Ausdrücken, um Links zu filtern, die MIDI-Dateien enthalten (ausgenommen solche mit Klammern im Namen):

Erstellen Sie 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))

Dies filtert MIDI-Dateien, druckt ihre Link-Tags und zeigt die Gesamtzahl an. Führen Sie mit python nes_midi_scraper.py.

aus

Herunterladen der MIDI-Dateien

Jetzt laden wir die gefilterten MIDI-Dateien herunter. Fügen Sie die Funktion download_track zu nes_midi_scraper.py:

hinzu
pip install requests==2.22.0 beautifulsoup4==4.8.1

Diese Funktion lädt jeden Titel herunter und speichert ihn unter einem eindeutigen Dateinamen. Führen Sie das Skript im gewünschten Speicherverzeichnis aus. Sie sollten ungefähr 2230 MIDI-Dateien herunterladen (abhängig vom aktuellen Inhalt der Website).

Web Scraping and Parsing HTML in Python with Beautiful Soup

Das Potenzial des Webs erkunden

Web Scraping öffnet Türen zu riesigen Datensätzen. Denken Sie daran, dass Webseitenänderungen Ihren Code beschädigen können. Halten Sie Ihre Skripte auf dem neuesten Stand. Verwenden Sie Bibliotheken wie Mido (für die MIDI-Datenverarbeitung) und Magenta (für das Training neuronaler Netzwerke), um auf dieser Grundlage aufzubauen.

Das obige ist der detaillierte Inhalt vonWeb Scraping und Parsing von HTML in Python mit Beautiful Soup. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Python: Ein tiefes Eintauchen in Zusammenstellung und InterpretationPython: Ein tiefes Eintauchen in Zusammenstellung und InterpretationMay 12, 2025 am 12:14 AM

PythonusesahybridmodelofCompilation und Interpretation: 1) thepythonInterPreterCompilessourceCodeIntoplatform-unintenpendentBytecode.2) Thepythonvirtualmachine (PVM) ThenexexexexecthisByTeCode, BalancingeAnsewusewithperformance.

Ist Python eine interpretierte oder eine kompilierte Sprache, und warum ist es wichtig?Ist Python eine interpretierte oder eine kompilierte Sprache, und warum ist es wichtig?May 12, 2025 am 12:09 AM

Pythonisbothinterpreted und kompiliert.1) ItscompiledToByteCodeForPortabilityAcrossplatform.2) thytecodeTheninterpreted, und das ErlaubnisfordyNamictyPingandRapidDevelopment zulässt, obwohl es sich

Für Schleife vs während der Schleife in Python: Schlüsselunterschiede erklärtFür Schleife vs während der Schleife in Python: Schlüsselunterschiede erklärtMay 12, 2025 am 12:08 AM

ForloopsaridealWenyouKnowtHenumberofofiterationssinadvance, während whileloopsarebetterForsituationswhereyouneedtoloopuntilaconditionismet.forloopsaremoreffictionAndable, geeigneter Verfaserungsverlust, whereaswiloopsofofermorcontrolanduseusefulfulf

Für und während Schleifen: ein praktischer LeitfadenFür und während Schleifen: ein praktischer LeitfadenMay 12, 2025 am 12:07 AM

Forloopsareusedwhenthenumberofiterationsisknowninadvance,whilewhileloopsareusedwhentheiterationsdependonacondition.1)Forloopsareidealforiteratingoversequenceslikelistsorarrays.2)Whileloopsaresuitableforscenarioswheretheloopcontinuesuntilaspecificcond

Python: Ist es wirklich interpretiert? Die Mythen entlarvenPython: Ist es wirklich interpretiert? Die Mythen entlarvenMay 12, 2025 am 12:05 AM

Pythonisnotpurelyinterpretiert; itusesahybridapproachofByteCodecompilation undruntimeinterpretation.1) PythoncompilessourcecodeIntoBytecode, die ISthenexecutBythepythonvirtualmachine (Pvm)

Python -Verkettungslisten mit demselben ElementPython -Verkettungslisten mit demselben ElementMay 11, 2025 am 12:08 AM

ToconcatenatelistsinpythonWithThesameElements, Verwendung: 1) Die Operatortokeepduplikate, 2) asettoremoveduplicate, or3) listenConpRectionforControloverDuplikate, EvermethodhasDifferentPerformanceInDormplocate.

Interpretiert gegen kompilierte Sprachen: Pythons PlatzInterpretiert gegen kompilierte Sprachen: Pythons PlatzMay 11, 2025 am 12:07 AM

PythonisaninterpretedLuage, OfferingaseofuseandflexibilitätsbutfacingPerformancelimitationsincriticalApplications.1) InterpretedLanguages ​​LikePythonexecutine-by-Line, ermöglicht, dassmediateFeedbackandrapidPrototyping.2) CompiledLanguagesslikec/C.5.

Für und während der Schleifen: Wann benutzt du jeweils in Python?Für und während der Schleifen: Wann benutzt du jeweils in Python?May 11, 2025 am 12:05 AM

Useforloopswhenthenumberofofiterationssisknowninadvance und wileloopswhenCiterationsDependonacondition.1) Forloopsardealforsequencelistorranges.2) Während

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Nordhold: Fusionssystem, erklärt
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor