爬蟲 Urllib內建庫

2021-10-12 10:27:13 字數 3350 閱讀 5825

目錄

request模組

網路請求

字串形式的url引數

request物件形式的url引數

urllib.response物件方法

設定**

建立cookie

parse模組

parse方法

error模組

request模組用來構建和發起網路請求,可以用來模擬瀏覽器進行請求。在請求的時候可以新增請求頭、操作cookie和新增**等操作。

發起網路請求可以使用request模組中的urlopen方法,urlopen傳送網路請求後返回乙個urllib.response物件,這個物件中包含了請求返回的資料。

def urlopen(url, data=none, timeout=socket._global_default_timeout,

*, cafile=none, capath=none, cadefault=false, context=none):

urlopen方法引數

url:必備引數(可以是字串或者request物件)

data:請求的資料,get請求資料可以是位元組、檔案等物件;post請求時會將請求的資料以form表單形式傳輸

timeout: 超時時間,單位為s

from urllib import request

url = r''

response = request.urlopen(url=url)

from urllib import request

# 通過建立request物件,來構造urlopen方法的請求引數

url = r''

data = "".encode()

req = request.request(url=url,data=data,headers=headers,method="post")

response = request.urlopen(url=req)

# 通過迴圈以行為單位讀取資料

while true:

data=response.readline()

if data:

print(data)

request物件引數

url:必備引數,字串型別。

data:位元組型別,b』  』

headers:新增請求頭,字典型別

method:請求型別,預設為get,可以是post/put/delete

read():讀取物件儲存的全部資料,同讀取檔案中的方法一樣,這個方法執行一次後再執行,裡面的內容為空,因為第一次已經讀盡所有資料。

readline() :每次只讀取一行資料。

info():獲取響應頭資訊

geturl():獲取請求的url

getcode():獲取響應的狀態碼

from urllib import request

# 設定**

url=''

# **位址

proxy =

# 建立**處理器

proxies = request.proxyhandler(proxy)

# 建立openner物件

openner = request.build_opener(proxies)

# 使用**建立請求物件

# 建立cookie物件

cookie = cookiejar.cookiejar()

# 建立cookie處理器

# 將建立的cookie處理器作為引數來建立請求物件

opener = request.build_opener(cookies)

# 使用這個openner來傳送請求

response = opener.open("")

# 請求傳送成功後就會生成cookie資料

print(cookie)

主要用來對url進行解析,因為url中只能是通過ascii傳輸。

quote():單個引數轉碼成ascii

unquote():單個引數ascii轉碼成其他文字

urlencode():多個引數轉碼成ascii(多個引數為字典形式)

parse_qs():單個引數ascii轉碼成其他文字(需要注意的是轉碼後的引數存放在字典中,但字典的value值是存放在列表中)

from urllib import parse

# 單個引數

data_str = '天佑華夏'

print(parse.quote(data_str))

print(parse.unquote('%e5%a4%a9%e4%bd%91%e5%8d%8e%e5%a4%8f'))

# 多個引數

data_dict =

print(parse.urlencode(data_dict))

print(parse.parse_qs('%e5%a7%93%e5%90%8d=%e5%8f%b8%e9%a9%ac%e5%ad%90%e9%95%bf&%e5%b9%b4%e4%bb%a3=%e6%b1%89&%e4%b9%a1%e6%a2%93=%e5%a4%8f%e9%98%b3'))

error模組用來進行對異常處理,主要使用的兩個類urlerror與httperror。urlerror處理由request模組所產生的所有異常,httperror作為urlerror的子類,主要的三個處理異常的方法:

code:獲取異常時的狀態碼,reason:獲取異常時的原因,headers:獲取異常時的響應頭

Python 爬蟲實戰 內建模組urllib介紹

請求方法 結語 那麼接下來就正式進入正題了 urllib.request模組是python中的內建模組。所以在我們使用它時就不用再去重新安裝了。urllib.request模組中又很多的類和方法,下面我來說一下他們 import urllib.request url url resopnse url...

爬蟲之urllib庫

一 urllib的基本使用 import urllib.request response urllib.request.urlopen 獲取當前爬取網頁的狀態碼 print response.getcode decode 解碼 位元組資料轉成字串資料 data response.read decod...

爬蟲基礎 urllib庫

使用 urllib 匯入必要模組 from urllib import request 如果需要 url轉碼 from urllib import parse print parse.quote 范冰冰 e8 8c 83 e5 86 b0 e5 86 b0 urlopen url rsp reque...