日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:Python小白必看之urlopen()詳解

一.  簡介

urllib.request.urlopen()函數(shù)用于實現(xiàn)對目標url的訪問。

函數(shù)原型如下:urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None) 

url:  需要打開的網(wǎng)址

data:Post提交的數(shù)據(jù)

timeout:設(shè)置網(wǎng)站的訪問超時時間

直接用urllib.request模塊的urlopen()獲取頁面,page的數(shù)據(jù)格式為bytes類型,需要decode()解碼,轉(zhuǎn)換成str類型。

二.  函數(shù)參數(shù)介紹

1. url 參數(shù):目標資源在網(wǎng)路中的位置??梢允且粋€表示URL的字符串(如:http://www.pythontab.com/);也可以是一個urllib.request對象,詳細介紹請?zhí)D(zhuǎn)

2. data參數(shù):data用來指明發(fā)往服務(wù)器請求中的額外的參數(shù)信息(如:在線翻譯,在線答題等提交的內(nèi)容),data默認是None,此時以GET方式發(fā)送請求;當用戶給出data參數(shù)的時候,改為POST方式發(fā)送請求。

3. timeout:設(shè)置網(wǎng)站的訪問超時時間

4. cafile、capath、cadefault 參數(shù):用于實現(xiàn)可信任的CA證書的HTTP請求。(基本上很少用)

5. context參數(shù):實現(xiàn)SSL加密傳輸。(基本上很少用)

三. 返回處理方法詳解

urlopen返回對象提供方法:

read() , readline() ,readlines() , fileno() , close() :對HTTPResponse類型數(shù)據(jù)進行操作

info():返回HTTPMessage對象,表示遠程服務(wù)器返回的頭信息

getcode():返回Http狀態(tài)碼。如果是http請求,200請求成功完成;404網(wǎng)址未找到

geturl():返回請求的url

四. 版本區(qū)別, 注意事項

python2和python3在導(dǎo)入urlrequest的方式都不一樣。 

python2是這樣:import urllib2 

而python3里面把urllib分開了,分成了urlrequest和urlerror,在這里我們只需導(dǎo)入urlrequest即可。from urllib.request import urlopen

五. 實例

下面這個程序,實現(xiàn)了urlopen()函數(shù)的大部分功能,特別是data參數(shù)。data自定義,data格式轉(zhuǎn)換,數(shù)據(jù)的編碼encode()和解碼decode()。

#coding=utf-8
#Python3.x
'''
利用有道翻譯進行在線翻譯
'''
import urllib.request
import urllib.parse
import json
def traslate(words):
    #目標URL
    targetURL = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"
    #用戶自定義表單,words表示的是用戶要翻譯的內(nèi)容。這里使用的是dict類型,也可以使用元組列表(已經(jīng)試過的)。
    data = {}
    data['type'] = 'AUTO'
    data['i'] = words
    data['doctype'] = 'json'
    data['xmlVersion'] = '1.8'
    data['keyfrom'] = 'fanyi.web'
    data['ue'] = 'UTF-8'
    data['action'] = 'FY_BY_CLICKBUTTON'
    data['typoResult'] = 'true'
    #將自定義data轉(zhuǎn)換成標準格式
    data = urllib.parse.urlencode(data).encode('utf-8')
    #發(fā)送用戶請求
    html = urllib.request.urlopen(targetURL, data)
    #讀取并解碼內(nèi)容
    rst = html.read().decode("utf-8")
    rst_dict = json.loads(rst)
    return rst_dict['translateResult'][0][0]['tgt']
if __name__ == "__main__":
    print("輸入字母q表示退出")
    while True:
        words = input("請輸入要查詢的單詞或句子:\n")
        if words == 'q':
            break
        result = traslate(words)
        print("翻譯結(jié)果是:%s"%result)

本文名稱:創(chuàng)新互聯(lián)Python教程:Python小白必看之urlopen()詳解
分享網(wǎng)址:http://www.5511xx.com/article/cosjcss.html