日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python find(urlopen.read())_Python小白必看之urlopen()详解

發布時間:2024/10/6 python 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python find(urlopen.read())_Python小白必看之urlopen()详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.? 簡介

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

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

url:? 需要打開的網址

data:Post提交的數據

timeout:設置網站的訪問超時時間

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

二.? 函數參數介紹

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

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

3. timeout:設置網站的訪問超時時間

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

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

三. 返回處理方法詳解

urlopen返回對象提供方法:

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

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

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

geturl():返回請求的url

四. 版本區別, 注意事項

python2和python3在導入urlrequest的方式都不一樣。

python2是這樣:import urllib2

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

五. 實例

下面這個程序,實現了urlopen()函數的大部分功能,特別是data參數。data自定義,data格式轉換,數據的編碼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表示的是用戶要翻譯的內容。這里使用的是dict類型,也可以使用元組列表(已經試過的)。

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轉換成標準格式

data?=?urllib.parse.urlencode(data).encode('utf-8')

#發送用戶請求

html?=?urllib.request.urlopen(targetURL,?data)

#讀取并解碼內容

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("翻譯結果是:%s"%result)

總結

以上是生活随笔為你收集整理的python find(urlopen.read())_Python小白必看之urlopen()详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。