2016-04-03 12 views
0

Ich verwende BeautifulSoup (Parser) mit urllib.request.urlopen(), um Textinformationen von einer Website zu erhalten. Wenn ich jedoch den Netzwerkbereich in meinem Aktivitätsmonitor überprüfe, sehe ich, dass Python viele Daten herunterlädt. Dies deutet darauf hin, dass nicht nur der Text heruntergeladen wird, sondern auch die Bilder.Vermeiden Sie das Herunterladen von Bildern mit Beautifulsoup und urllib.request

Ist es möglich, das Herunterladen von Bildern beim Webscraping mit BeautifulSoup zu vermeiden?

+2

? Kannst du tatsächlich den Rohbild-Bytecode sehen, der in deiner Antwort geschrieben wurde? Ansonsten bin ich nicht sicher, warum Sie Bilder herunterladen würden. Bilder werden normalerweise separat in einem '' mit 'src'-Attribut gespeichert - HTML-Scraper enthalten einen Link zu dem Bild, das als Text dargestellt wird, aber nicht das Herunterladen des Bildes erzwingt, weil Sie ihm nie gesagt haben, dem Link zu folgen. –

+0

Ich vermute, die Seite hat einfach mehr Daten, als Sie denken sollten. Inline JS kann einen Schlag einstecken. –

+0

Ich überprüfte das 'Suppe' Ergebnis und speicherte es in einer Textdatei. Sie haben Recht, es war 256 kB und es gab '' Attribute, die zu den tatsächlichen Bildern verbinden. Danke für deine Hilfe Akshat! – Frits

Antwort

0

Das ist unwahrscheinlich, da Bilder nicht auf der Seite sind, die sie in sind. Der Browser oder urllib muss mehrere Reisen zu wo auch immer die statischen Dateien wie JS, IMG, CSS machen. Eine mögliche Lösung zur Verringerung der Größe ist die Anforderung von komprimiertem Inhalt.

Fügen Sie "Accept-Encoding":"gzip" Header zum Objekt Request hinzu. Wenn der Server dies unterstützt, wird die Größenreduktion gut sein. Sie werden dann gzip.decompress() es um String-Daten zu erhalten.

Verwandte Themen