Drucken der Inhalt aller html-Dateien in einem Verzeichnis mit BeautifulSoup

Ich öffnete ein Verzeichnis mit 200 html-Dateien mit BeautifulSoup, aber wenn ich versuche, drucken Sie den Inhalt des ganzen Verzeichnisses mit print(Suppe).prettify()) es zeigt nur den Inhalt von nur einer HTML-Datei. Das gleiche passiert wenn ich versuche die Suppe.find('title'), die es nur zu Lasten der Titel der gleiche HTML-Datei vor. Können Sie mir sagen, warum ? python zeigt keine Fehler und ich kann nicht verstehen, was falsch in meinem code.


import os
from bs4 import BeautifulSoup
import glob
import errno

dir_path = '/Users/martinagalletti/Desktop/parte 2 data mining/train/student'
files = glob.glob(dir_path)
for name in files:
    try:
        with open(name) as f:
            soup = BeautifulSoup(f, "html.parser")
            print(type(soup))
    except IOError as exc:
        if exc.errno != errno.EISDIR:
            raise

print(type(soup))
soup.find('title')

1 Antworten

  • glhr
    4. Mai 2019

    Das problem hier ist, dass Sie vorbei sind Sie ein Verzeichnis Pfad zu glob statt einen Datei-Pfad-Angabe. Angenommen, Sie möchten, analysieren jede HTML-Datei in der student directory definieren Sie den Pfad:

    dir_path = '/Users/martinagalletti/Desktop/parte 2 data mining/train/student/*.html' 
    

    Hinweis: der Platzhalter *, was bedeutet, dass dir_path passen auf eine beliebige HTML-Datei in der student - Verzeichnis.