當前位置:成語大全網 - 書法字典 - Url字典庫

Url字典庫

宗書

首先,我們來看看它們的區別。

Urllib和urllib2

urllib和urllib2都是接受URL請求的相關模塊,但urllib2可以接受request類的實例來設置URL請求的頭,而urllib只能接受URL。

這意味著妳不能偽裝妳的用戶代理字符串等。

Urllib提供了urlencode方法來獲取查詢字符串的生成,而urllib2沒有。這就是urllib經常與urllib2壹起使用的原因。

當前的大部分產品;MSIE 5.5windows NT)‘#將user_agent寫入標頭信息。

values = {“name“:“who“,“password“:“123456“}

headers = {‘用戶代理‘:用戶代理}

data = urllib.urlencode(值)

req = urllib2。請求(url、數據、標題)

response = URL lib 2 . urlopen(req)

the_page = response.read()

值是後期數據。

獲取方法

例如百度:

這樣,我們需要對字典{‘wd‘:‘XXX‘}進行urlencode。

#編碼:utf-8

導入urllib

導入urllib2

URL =‘‘

values = {‘wd‘:‘D _ in‘}

data = urllib.urlencode(值)

打印數據

URL 2 = URL+‘?‘。+數據

response = URL lib 2 . urlopen(URL 2)

the_page = response.read()

打印_頁

發布方法

導入urllib

導入urllib2

URL =‘‘

user _ agent =‘Mozilla/4.0(兼容;MSIE 5.5windows NT)‘//將user_agent寫入標頭信息。

values = {“name“:“who“,“password“:“123456“}/post數據

headers = {‘用戶代理‘:用戶代理}

Data = urllib。urlencode(values)//對發布數據進行url編碼。

req = urllib2。請求(url、數據、標題)

response = URL lib 2 . urlopen(req)

the_page = response.read()

urllib2與cookie的結合使用

#編碼:utf-8

導入urllib2,urllib

導入cookielib

url = r“”

#為cj的cookie創建壹個容器

cj = cookielib。庫克耶爾()

opener = URL lib 2 . build _ opener(URL lib 2。HTTPCookieProcessor(CJ))

#對要發布的數據進行編碼。

data = urllib . urlencode({“email“:電子郵件,“password“:pass })

r = opener . open(URL,data)

打印cj

httplib的簡單用法

簡單的例子

#!/usr/bin/env python

# -*-編碼:utf-8 -*-

導入httplib

導入urllib

def sendhttp():

data = urllib . urlencode({“@ number“:12524,“@ type“:“issue“,“@ action“:“show“})

headers = {“Content-type“:“application/x-www-form-urlencoded“,

“接受“:“文本/普通“}

conn = httplib。http connection(‘bugs . python . org‘)

conn . request(‘POST‘,‘/‘,data,headers)

httpres = conn.getresponse()

打印httpres.status

打印httpres.reason

打印httpres.read()

if __name__ == '__main__ ':

發送http()

有關具體用法,請參見。

Httplib模塊

python 3.x中的urllib庫和urilib2庫合並為urllib庫。其中,

首先,通過以下方式導入模塊

導入urllib

導入urllib2

成為

導入urllib.request

urllib2中的方法用法如下。

Urllib2.urlopen()成為urllib.request.urlopen()。

Urllib2。Request()變成了urllib.request.Request()。

Urllib2。URLError成為urllib.error.URLError

當您想對數據使用urllib post請求時,

在python2中。

urllib.urlencode(數據)

在python3中,它變成了

urllib.parse.urlencode(數據)

腳本使用示例:

在python 2中

導入urllib

導入urllib2

導入json

從配置導入設置

def url _ request(self,action,URL,* * extra _ data):ABS _ URL =“http://% s:% s/% s“%(settings . configs【‘Server‘】,

settings . configs【“server port“】,

網址)

if操作in(‘GET‘,‘GET‘):

打印(abs_url,extra_data)

嘗試:

req = urllib2。請求(abs_url)

req _ data = URL lib 2 . URL open(req,time out = settings . configs【‘request time out‘】)

回調= req_data.read()

#打印“-& gt;服務器響應:“,回調

返回回撥

urllib2除外。URLError as e:

退出(“\ 033【31;1m % s \ 033【0m“% e】

elif操作(‘POST‘,‘POST‘):

# print(ABS _ URL,extra _ data【‘params‘】)

嘗試:

data _ encode = urllib . urlencode(extra _ data【‘params‘】)

req = urllib2。請求(url=abs_url,data=data_encode)

RES _ data = URL lib 2 . URL open(req,time out = settings . configs【‘request time out‘】)

回調= res_data.read()

callback = json.loads(回調)

print(“\ 033【31;1m【% s】:【% s】\ 033【0m響應:\ n % s“%(操作,abs_url,回調))

返回回撥

例外情況為e:

打印(- exec,e)

退出(“\ 033【31;1m % s \ 033【0m“% e】

在python3.x中

導入urllib.request

導入json

從配置導入設置

定義url_request(自身,操作,url,* *額外數據):

ABS _ url =‘http://% s:% s/% s/‘%(settings . configs【‘server IP‘】,settings . configs【‘server port‘】,URL)

If操作in(‘Get‘,‘Get‘):# Get請求

print(action,extra_data)嘗試:

req = URL lib . request . request(ABS _ URL)

req _ data = urllib . request . urlopen(req,time out = settings . configs【‘request time out‘】)

回調= req_data.read()

返回回撥

除了urllib.error.URLError作為e:

退出(“\ 033【31;1m % s \ 033【0m“% e】

Elif操作in(‘post‘,‘post‘):#向服務器發送數據。

嘗試:

data _ encode = urllib . parse . urlencode(extra _ data【‘params‘】)

req = URL lib . request . request(URL = ABS _ URL,data=data_encode)

req _ data = urllib . request . urlopen(req,time out = settings . configs【‘request time out‘】)

回調= req_data.read()

回調= json.loads(回調。解碼())

返回回撥

除了urllib.request.URLError作為e:

打印(- exec,e)

退出(“\ 033【31;1m % s \ 033【0m“% e】

設置配置如下:

配置= {

“HostID”:2,

“服務器”:“本地主機”,

【服務器端口】:8000,

“URL“:{

get _ configs:‘:【‘API/client/config‘,‘get‘】,#acquire將監視所有服務

service _ report“:【“API/client/service/report/“,“post“】,

},

“request time out”:30,

“ConfigUpdateInterval”:300,默認為# 5分鐘

}