Heim > Backend-Entwicklung > Python-Tutorial > Das Programm simuliert Browseranfragen und Sitzungsaufbewahrungs-Python-Implementierung

Das Programm simuliert Browseranfragen und Sitzungsaufbewahrungs-Python-Implementierung

高洛峰
Freigeben: 2016-10-18 09:20:54
Original
1341 Leute haben es durchsucht

Das Lesen von Daten von einer Seite unter Python kann einfach über urllib2 angefordert werden

import urllib2
print urllib2.urlopen('http://www.pythontab.com').read()
Nach dem Login kopieren

Wenn es sich um den POST-Anfragevorgang der Seite handelt, benötigen Sie um Header-Informationen, übermittelte Beitragsdaten und eine Anforderungsseite bereitzustellen.

Die Beitragsdaten benötigen urllib.encode(), wodurch das Wörterbuch tatsächlich in das Format „data1=value1&data2=value2“ konvertiert wird.

import urllib
import urllib2
  
HEADER = {
    'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0',
    'Referer' : 'http://202.206.1.163/logout.do'
}
  
POSTDATA = {
    'data1': 'value1',
    'data2': 'value2'
}
  
HOSTURL = 'http://xxx.com'
  
enpostdata = urllib.urlencode(POSTDATA)
urlrequest = urllib2.Request(hosturl,enpostdata,HEADER)
urlresponse = urllib2.urlopen(urlrequest)
  
print urlresponse.read()
Nach dem Login kopieren

Nach der Anfrage führt der Browser einen Sitzungsaufbewahrungsprozess durch. Die Sitzung wird in einem Cookie gespeichert Wird im Anforderungsheader platziert. Wenn das Cookie verloren geht, wird die Sitzung getrennt.

Sie müssen die Cookie-Aufbewahrung unter Python einrichten

# cookie set
# 用来保持会话
cj = cookielib.LWPCookieJar()
cookie_support = urllib2.HTTPCookieProcessor(cj)
opener = urllib2.build_opener(cookie_support, urllib2.HTTPHandler)
urllib2.install_opener(opener)
Nach dem Login kopieren

Das Folgende ist eine Bibliotheksdatei, die der Einfachheit halber die oben genannten Wissenspunkte zusammenfasst Verwendung:

# filename: analogop.py
  
#!/usr/bin/python
# -*-coding:UTF-8 -*-
  
# author: 初行
# qq: 121866673
# mail: zxbd1016@163.com
# message: I need a python job
# time: 2014/10/8
  
import urllib
import urllib2
import cookielib
  
# cookie set
# 用来保持会话
cj = cookielib.LWPCookieJar()
cookie_support = urllib2.HTTPCookieProcessor(cj)
opener = urllib2.build_opener(cookie_support, urllib2.HTTPHandler)
urllib2.install_opener(opener)
  
# default header
HEADER = {
    'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0',
    'Referer' : 'http://202.206.1.163/logout.do'
}
  
# operate method
def geturlopen(hosturl, postdata = {}, headers = HEADER):
    # encode postdata
    enpostdata = urllib.urlencode(postdata)
    # request url
    urlrequest = urllib2.Request(hosturl, enpostdata, headers)
    # open url
    urlresponse = urllib2.urlopen(urlrequest)
    # return url
    return urlresponse
Nach dem Login kopieren

Dies ist eine Testdatei, da Leser keine Testumgebung haben und diese daher selbst erstellen oder eine Website dafür finden müssen Test:

#filename: test.py
from analogop import geturlopen
  
postd = {
    'usernum': '2011411111',
    'upw': '124569',
    'userip': '192.168.10.1',
    'token': 'xxx'
}
  
urlread = geturlopen('http://127.0.0.1:8000/login/', postd)
print urlread.read().decode('utf-8')
urlread = geturlopen('http://127.0.0.1:8000/chafen/', {})
print urlread.read().decode('utf-8')
Nach dem Login kopieren



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