Dieser Artikel ist der 19. Tag von Crawler / Web Scraping Adventskalender 2016.
Zunächst einmal ist mitmproxy weder ein Scraping-Tool noch ein Crawling-Tool **, aber es ist der Zweck dieses Artikels, es zum Scraping zu verwenden. ..
Wie der Name schon sagt, ist mtimproxy ** Proxy **, was eine Abkürzung für Man-in-the-Middle-Proxy zu sein scheint. OSS von Python.
In einem Diagramm sieht es so aus. Ist es sozusagen ein Bild eines Proxys, der sich selbst als Vermittler angreift?
Ich habe es selbst geschrieben und war ein wenig überrascht, weil es eine bedeutungslose Figur war, aber mit Mitmproxy,
Dies bedeutet, dass Sie ** alle von Ihnen besuchten Websites automatisch mit einem Python-Skript ** verarbeiten können.
Wenn Sie eine Antwort in Python verarbeiten können, können Sie sie speichern, sodass sie als eine Art Crawling-Tool ** verwendet werden kann.
Natürlich ist Mitmproxy nur ein Proxy-Tool, sodass Sie mit keiner Strategie automatisch crawlen können. Diesmal besteht die Strategie darin, dass ** Menschen als Spinnen (Bots) ** agieren und die Browsing-Ergebnisse speichern und kratzen **.
Lassen Sie mich erklären, warum das Schaben mit Mitmproxy am stärksten ist.
Gibt es beispielsweise die folgenden Anwendungsfälle?
Im Gegenteil, ich halte Folgendes nicht für geeignet.
Die Installation ist einfach. Wenn Sie bei der Installation nicht weiterkommen, verwenden Sie die offizielle Docker-Version.
pip install mitmproxy
Mitmproxy verfügt über zwei Tools. Mitmproxy und Mitmdump. Ersteres ist eine CUI und ein interaktives Tool. Letzteres hat keine Wechselwirkung und eignet sich gut zum Schaben von Anwendungen.
Die Startmethode ist einfach. Geben Sie einfach "mitmdump" in die Shell ein. Standardmäßig wird es an Port "8080" gestartet, sodass Sie "127.0.0.1: 8080" als Proxy angeben können (in Chrome Proxy Switchy Sharp. Die Erweiterung / webstore / detail / proxy-switchysharp / dpplabbmogkhghncfbfdeeokoefdjegm? Hl = ja) ist einfach zu bedienen.
Wenn die Proxy-Einstellungen erfolgreich sind, öffnen Sie die entsprechende Site. Wenn alles gut geht, sollte der von mtimdump empfangene Inhalt folgendermaßen aussehen:
Hier erfahren Sie, wie Sie ein Python-Skript mit Mitmproxy ausführen.
mitmdump -s path_to_script.py
Das auszuführende Skript kann beispielsweise wie folgt aussehen. Im folgenden Beispiel wird der Inhaltstyp auf "text / html" eingegrenzt und gespeichert.
def response(flow):
content_type = flow.response.headers.get('Content-Type', '')
path = flow.request.url.replace('/', '_').replace(':', '_')
if content_type.startswith('text/html'):
with open(path, 'w') as f:
f.write(flow.response.text)
Natürlich denke ich, dass Sie Elemente entsprechend mit lxml usw. extrahieren sollten.
Andere Beispiele, die die Funktionen von Mitmproxy abdecken, sind auf GitHub.
Ich habe die Crawling-Technik mit Mitmproxy eingeführt. Menschen sind die Besten!
Ich habe die Erklärung weggelassen, aber sie unterstützt auch SSL-Sites (bitte googeln Sie für Details).
Diese Methode ist sozusagen eine Methode wie ein Zwischenangriff. Wenn Sie versuchen, jemanden ohne Ihre Zustimmung anzugreifen, ist dies ein gutes Verbrechen. Tun Sie es also bitte nicht. Lassen Sie uns bis zum letzten Mal die von Ihnen durchsuchte Site speichern und analysieren. Verwenden Sie keine privaten APIs mehr, die in unseren Nutzungsbedingungen verboten sind.
Recommended Posts