2017-12-19 11 views
0

ich besuche en.wikipedia.org/wiki/Hello während offene Chrome-Konsole zu halten: in Netzwerk Registerkarte kann ich HTTP-Anfragen Inhalt überprüfen: die ersten zu genannt wird:halte Spur von heruntergeladenen Ressourcen über HTTP mit Python-Modul fordert

GET https://en.wikipedia.org/wiki/Hello -> 200 

dann, viele anderen HTTP-Anfragen behandelt werden: die Wikipedia logo , einig CSS .png, werden in meinen Browser Datei-Skripte und andere heruntergeladen und zusammen machen sie die eigentliche Seite von Wikipedia.

Mit requests, mag ich das Gleiche tun: ein einfaches

requests.get("https://en.wikipedia.org/wiki/Hello") 

mir das HTML-Dokument von Hallo Seite zurückkehren, aber keine andere Ressource heruntergeladen werden.

Ich möchte die Anzahl der Verbindungen behalten, die geöffnet werden, um eine Seite zu rendern und welche Elemente heruntergeladen werden; Die obige GET-Anfrage gibt keine Bilder, CSS oder Skripte zurück.

Ich denke, ich vermisse etwas Wichtiges: Wer weiß, welche Ressourcen benötigt werden, um eine Webseite komplett zu laden?

Ich frage das, weil ich (mit requests) wissen möchte, welche Ressourcen heruntergeladen werden und wie viele Verbindungen es brauchte, um sie zu bekommen.

Ich denke, der Server ist derjenige, der weiß, was eine Seite geladen werden muss, also sollte der Server diese Informationen an den Client weitergeben, aber mir fehlt wo: Ich habe nichts in HTTP-Anfrage-Header gefunden.

Ich brauche diese Liste/Wörterbuch/JSON/was auch immer von Ressourcen notwendig, um eine Seite vollständig zu rendern, also kann ich es manuell mit Python tun.

Antwort

0

High five ich XD

Die anderen benötigten Ressourcen (angezeigt) werden in der ersten heruntergeladenen Ressource: das HTML-Dokument. Ich werde es analysieren (10) und bekomme, was ich brauche (<link rel=... href=... />), dies sollte mir die Anzahl der Downloads und Ressourcen die Seite benötigt. Wie für die Anzahl der Verbindungen, lese ich über HTTP keep-alive: Wenn also eine einzelne TCP-Verbindung zum Herunterladen von Ressourcen verwendet wird, muss ich nicht sorgen, wie viele Verbindungen geöffnet sind, da HTTP 1.1-Verbindungen standardmäßig am Leben erhalten werden . Ich sollte nur überprüfen, ob es HTTP 1.0 verwendet, wenn ja, suchen Sie nach Connection: keep-alive Header.

Verwandte Themen