Ich möchte eine Webapp erstellen, um anderen Studenten an meiner Universität zu helfen, ihre Zeitpläne zu erstellen. Dazu muss ich die Masterpläne (eine riesige HTML-Seite) sowie einen Link zu einer detaillierten Beschreibung für jeden Kurs in eine Datenbank crawlen, vorzugsweise in Python. Außerdem muss ich mich anmelden, um auf die Daten zugreifen zu können.
requests
zum Herunterladen der Seiten .lxml
zum Verschrotten der Daten.Wenn Sie ein leistungsfähiges Scraping-Framework verwenden möchten, gibt es Scrapy
. Es hat auch eine gute Dokumentation. Es kann jedoch ein wenig übertrieben sein, abhängig von Ihrer Aufgabe.
Scrapy ist wahrscheinlich die beste Python-Bibliothek zum Crawlen. Es kann den Status für authentifizierte Sitzungen beibehalten.
Der Umgang mit binären Daten sollte separat behandelt werden. Für jeden Dateityp müssen Sie entsprechend seiner eigenen Logik anders damit umgehen. Für fast jedes Format können Sie wahrscheinlich eine Bibliothek finden. Schauen Sie sich zum Beispiel unter PyPDF den Umgang mit PDFs an. Für Excel-Dateien können Sie xlrd ausprobieren.
Ich mochte die Verwendung von BeatifulSoup zum Extrahieren von HTML-Daten
So einfach ist das:
from BeautifulSoup import BeautifulSoup
import urllib
ur = urllib.urlopen("http://pragprog.com/podcasts/feed.rss")
soup = BeautifulSoup(ur.read())
items = soup.findAll('item')
urls = [item.Enclosure['url'] for item in items]
Zu diesem Zweck gibt es ein sehr nützliches Tool namens web-harvestLink auf ihre Website http://web-harvest.sourceforge.net/ Ich verwende dieses zum Crawlen von Webseiten