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

Das Programm simuliert Browseranfragen und Sitzungsaufbewahrungs-Python-Implementierung

高洛峰
高洛峰Original
2016-10-18 09:20:541272Durchsuche

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()

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 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)

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

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')



Stellungnahme:
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