urllib模組的使用

2021-08-08 14:56:45 字數 2824 閱讀 7548

-         url:  需要開啟的**

-         data:post提交的資料

-         timeout:設定**的訪問超時時間

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

1

from urllib import

request

2 response = request.urlopen(r'

') #

httpresponse型別

3 page =response.read()

4 page = page.decode('

utf-8

')

urlopen返回物件提供方法:

-         read() , readline() ,readlines() , fileno() , close() :對httpresponse型別資料進行操作

-         info():返回httpmessage物件,表示遠端伺服器返回的頭資訊

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

-         geturl():返回請求的url

使用request()來包裝請求,再通過urlopen()獲取頁面。

1 url = r'

'2 headers =

8 req = request.request(url, headers=headers)

9 page =request.urlopen(req).read()

10 page = page.decode('

utf-8

')

用來包裝頭部的資料:

-         user-agent :這個頭部可以攜帶如下幾條資訊:瀏覽器名和版本號、作業系統名和版本號、預設語言

-         referer:可以用來防止盜鏈,有一些**顯示**http://***.com,就是檢查referer來鑑定的

-         connection:表示連線狀態,記錄session的狀態。

urlopen()的data引數預設為none,當data引數不為空的時候,urlopen()提交方式為post。

1

from urllib import

request, parse

2 url = r'

'3 headers =

9 data =

14 data = parse.urlencode(data).encode('

utf-8')

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

16 page =request.urlopen(req).read()

17 page = page.decode('

utf-8

')

urlencode()主要作用就是將url附上要提交的資料。

1 data =

6 data = parse.urlencode(data).encode('

utf-8

')

經過urlencode()轉換後的data資料為?first=true?pn=1?kd=python,最後提交的url為

first=true?pn=1?kd=python

post的資料必須是bytes或者iterable of bytes,不能是str,因此需要進行encode()編碼

1 page = request.urlopen(req, data=data).read()
當然,也可以把data的資料封裝在urlopen()引數中

當需要抓取的**設定了訪問限制,這時就需要用到**來抓取資料。

1 data =

6 proxy = request.proxyhandler() #

設定proxy

7 opener = request.build_opener(proxy) #

掛載opener

8 request.install_opener(opener) #

安裝opener

9 data = parse.urlencode(data).encode('

utf-8')

10 page =opener.open(url, data).read()

11 page = page.decode('

utf-8')

12return page

urllib模組的使用

urllib.request.urlopen url,data none,timeout,cafile none,capath none,cadefault false,context none 直接用urllib.request模組的urlopen 獲取頁面,page的資料資料格式為bytes型別...

Python中urllib模組的使用

建立乙個表示遠端url的類檔案物件,然後像本地檔案一樣操作這個類檔案物件來獲取遠端資料。引數url表示遠端資料的路徑,一般是 引數data表示以post方式提交到url的資料 玩過web的人應該知道提交資料的兩種方式 post與get。如果你不清楚,也不必太在意,一般情況下很少用到這個引數 引數pr...

urllib和re模組的使用

re模組的使用 匹配任意乙個字元,除了 n 匹配字串的開頭 匹配字串的結尾 re模組 1 complie方法 將正規表示式的字串形式編譯為乙個pattern物件 2,match方法 從起始位置開始匹配符合規則的字串,單次匹配,匹配成功,立即返回match物件,未匹配成功則返回none 3.searc...