python爬蟲筆記之urllib庫的簡單使用

2021-10-09 07:11:49 字數 4044 閱讀 6126

1.urlopen()

import urllib.request

response = urllib.request.urlopen(

'')print

(response.read(

).decode(

'utf-8'))

print

(type

(response)

)

response是乙個httpresponse型別的物件,主要包含read(),readinto(),getheader()(獲取響應頭的資訊)等方法,以及msg,version,status,reason等屬性。

利用urlopen(),可以完成基本的簡單網頁的get請求抓取。

urlopen()函式的api:

urllib.request.urlopen(url, data=none, [timeout,]*, cafile=none, capath=none, cadefault=flase, context=none)

import urllib.request

import urllib.parse

data =

bytes

(urllib.parse.urlencode(

), encoding=

'utf-8'

)#先使用urlencode()方法將引數字典轉化為字串

response = urllib.request.urlopen(

'', data=data)

print

(response.read(

))

結果中含有上傳的引數出現在form欄位中,這表明是模擬了表單提交的方式,以post方式傳輸資料。

import socket

import urllib.request

import urllib.error

try:

response = urllib.request.urlopen(

'', timeout=

0.1)

except urllib.error.urlerror as e:

ifisinstance

(e.reason, socket.timeout)

:print

("time out"

)

請求超時,捕獲異常,列印輸出time out

from urllib import request, parse

url =

''headers =

dict

=data =

bytes

(parse.urlencode(

dict

), encoding=

'utf-8'

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

'post'

)response = request.urlopen(req)

print

(response.read(

).decode(

'utf-8'

))

結果

,"data":""

,"files":,

"form":,

"headers":,

"json"

: null,

"origin"

:"180.109.39.75"

,"url"

:""}

3.高階用法handler,可以用來處理登入驗證,處理cookies, 處理**設定。利用它們幾乎可以做到http請求中的所有事情。

結果name=germey&age=22

from urllib.parse import quote

key =

'桌布'

url =

'/s?wd='

+ quote(key)

print

(url)

結果/s?wd=%e5%a3%81%e7%ba%b8

from urllib.parse import unquote

url =

'/s?wd=%e5%a3%81%e7%ba%b8'

print

(unquote(url)

)

結果/s?wd=桌布

Python標準庫之資料抓取模組urllib

urllib是python內建的http請求庫,它包含四個子模組 request模組,它是最基本的 http 請求模組,我們可以用它來模擬傳送一請求,就像在瀏覽器裡輸入 然後敲擊回車一樣,只需要給庫方法傳入 url 還有額外的引數,就可以模擬實現這個過程了。error模組即異常處理模組,如果出現請求...

爬蟲 Python爬蟲學習筆記之Urllib庫

1.urllib.request開啟和讀取url 2.urllib.error包含urllib.request各種錯誤的模組 3.urllib.parse解析url 4.urllib.robotparse解析 robots.txt檔案 傳送get請求 引入urlopen庫 用於開啟網頁 from u...

python 爬蟲之requests筆記

準備工作 安裝好pycharm,requests庫 requests 爬蟲程式 模板 import requests defgethtmttext url try r requests.get url,timeout 30 r.raise for status 如果狀態不是200,引發httperr...