Heim > Backend-Entwicklung > Python-Tutorial > POST/GET-Paketkonstruktion und zufällige String-Generierung in Python

POST/GET-Paketkonstruktion und zufällige String-Generierung in Python

高洛峰
Freigeben: 2016-10-18 11:22:31
Original
1142 Leute haben es durchsucht

Nun verwenden wir Python, um GET-Pakete und POST-Pakete zu erstellen.

Was seine Nützlichkeit betrifft, wird es langsam jeder verstehen.

Python enthält eine große Anzahl von Bibliotheken. Als aufstrebende Sprache verfügt Python über eine ausreichend starke Unterstützung für HTTP.

Jetzt stellen wir die neuen Bibliotheken httplib und urllib vor

Anhand ihrer Namen können wir erkennen, dass sie auf HTTP und URL arbeiten.

Zuerst müssen wir eine Verbindung mit dem Server herstellen. (Wir verwenden ein bestimmtes Weibo als Beispiel, um die verschiedenen Funktionen unten zu implementieren)

conn = httplib.HTTPConnection("ti50*****com");

Solange es gibt Kein Fehler, wir Es kann davon ausgegangen werden, dass die Verbindung erfolgreich ist und das Datenpaket als nächstes gesendet werden kann.

Wir haben oben die Struktur des GET-Pakets erwähnt, nur den HEARDER-Teil. In httplib wird Heaer über ein Wörterbuch gespeichert. Definieren wir es unten:

headers = {"Content-Type": "application/x-www-form-urlencoded",

"Accept": "text/html,application/ xhtml xml,application/xml;q=0.9,*/*;q=0.8",

"Referer": "http://ti50.*****com/g/s?sid= * ********************",

"Accept-Encoding": ",

"Accept-Language": " zh-CN,zh;q=0.8",

"Accept-Charset": "GBK,utf-8;q=0.7,*;q=0.3",

"Cookie" : Cookie }

Accept-Encoding Wir haben seinen Inhalt gelöscht. Für den Server kann unser Client kein komprimiertes Format akzeptieren. Das Datenpaket wird mit den Originaldaten zurückgesendet, sodass wir uns die Notwendigkeit ersparen können Der Komprimierungsprozess analysiert die Webseite direkt, die Folgen sind jedoch großer Datenverkehr und eine schlechte Netzwerk-Echtzeitleistung. Natürlich gibt es auch andere Bibliotheken, die sich speziell mit der Dekomprimierung befassen.

Dann können wir es direkt versenden.

conn.request(method="GET",url='''http://ti50****com/g/s?**********_TK9EH&r='' ' go_num '''&aid=amsg&bid=******=true&ifh=1&ngpd=false''',headers=headers);

Das Methodenfeld gibt an, welche Art von Datenpaket gesendet wird.

Das URL-Feld definiert die Adresse in Form einer Zeichenfolge

Das Header-Feld definiert den Header.

Wenn ein Datenpaket an den Server gesendet wird, sendet der Server im Allgemeinen ein entsprechendes Antwortpaket zurück. Und dieses Antwortpaket ist für uns oft nützlich. Wir verwenden den folgenden Befehl, um das Antwortpaket zu erhalten.

response = conn.getresponse();

Für die Klammern in der obigen Anweisung wird angegeben, wie viele erste Zeichen des Antwortpakets gelesen werden.

Der Erstellungsprozess des POST-Pakets und des GET-Pakets ist grundsätzlich der gleiche.

Es ist nur so, dass wir einen neuen BODY definieren müssen. Dieser Teil kann als String definiert werden.

params = 'msg=****************************'

Das müssen wir noch tun Vor dem Server eine Verbindung herstellen.

conn = httplib.HTTPConnection("ti50*****com");

Senden

conn.request(method="POST",url='' '/g/s?sid=******************&ngpd=false''',body=params,headers=headers);

kann sein gefunden Die obige Formel unterscheidet sich geringfügig vom Format zum Senden von GET-Paketen.

Methode geändert.

Die URL enthält keinen Domainnamen.

Es gibt ein zusätzliches Körperfeld.

Die zweite Möglichkeit ist denkbar. Wenn kein Domänenname definiert ist, ersetzt das System den Domänennamen, der für die letzte Verbindung mit dem Server verwendet wurde.

Die Methode zum Erhalten des Antwortpakets ist die gleiche wie beim GET-Paket.

Ein Durcheinander kleiner Apps.

(1) Generierung zufälliger Zeichenfolgen.

Wenn wir POST verwenden, um einige interessante Dinge zu tun, stoßen wir häufig auf Probleme bei der Serverüberprüfung. Manchmal können wir zufällige Zeichenfolgen verwenden, um solche Situationen zu bewältigen.

Eine Bibliothek für Zufallszahlen in Python...zufällig.

Sehr praktisch für einfache Anwendungen. Zum Beispiel generieren wir eine zufällige ganze Zahl zwischen a und b.

random.randint(a,b)

>>> random.randint(10,20)

>>> 15

Diesen Schritt erhalten 1 können wir leicht ein Zufallsstringprogramm schreiben.

from random import Random
def random_str(randomlength):
    str = ''
    chars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789'
    length = len(chars) - 1
    random = Random()
    for i in range(randomlength):
        str+=chars[random.randint(0, length)]
    return str
Nach dem Login kopieren

Natürlich sollte beim Aufruf dieser Funktion die zufällige Stringlänge angegeben werden.

Natürlich können wir die Zeichen in der Zufallszeichenfolge auch definieren, indem wir die Zeichen in chars ändern.

(2) Programmlaufzeit

Wir geben nun eine sehr ungenaue Methode zur Berechnung der Programmzeit an,

from time import clock as now
start = now()
finish = now()
run_time = finish - start
print run_time
Nach dem Login kopieren


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage