python的rllib庫你了解嗎
urllib庫作用
urllib 庫 是Python內(nèi)置的 HTTP 請求庫。urllib 模塊提供的上層接口,使訪問 www 和 ftp 上的數(shù)據(jù)就像訪問本地文件一樣。我們爬取網(wǎng)頁的時候,經(jīng)常需要用到這個庫。
Urllib 庫下的幾種模塊的基本使用
一、urllib.request模塊
1.功能
urllib.request 模塊提供了最基本的構(gòu)造 HTTP (或其他協(xié)議如 FTP)請求的方法,利用它可以模擬瀏覽器的一個請求發(fā)起過程。利用不同的協(xié)議去獲取 URL 信息。它的某些接口能夠處理基礎(chǔ)認證 ( Basic Authenticaton) 、redirections (HTTP 重定向)、 Cookies (瀏覽器 Cookies)等情況。而這些接口是由 handlers 和 openers 對象提供的。
2.常用方法
2.1 urlopen()方法
語法格式:
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
參數(shù)說明:url:需要打開的網(wǎng)址; data: Post 提交的數(shù)據(jù), 默認為 None ,當 data 不為 None 時, urlopen() 提交方式為 Post; timeout:設(shè)置網(wǎng)站訪問超時時間
用例:
import urllib.request# 等價于from urllib import request response = urllib.request.urlopen('https://www.baidu.com') print("查看 response 響應(yīng)信息類型: ",type(response)) page = response.read() print(page.decode('utf-8'))
說明: 直接使用 urllib.request 模塊中的 urlopen方法獲取頁面,其中 page 數(shù)據(jù)類型為 bytes 類型,經(jīng)過 decode 解碼 轉(zhuǎn)換成 string 類型。通過輸出結(jié)果可以 urlopen 返回對象是HTTPResposne 類型對象。
urlopen 返回一個類文件對象,并提供了如下方法:
read() , readline() , readlines() , fileno() , close()
:這些方法的使用方式與文件對象完全一樣;
info():返回一個httplib.HTTPMessage對象,表示遠程服務(wù)器返回的頭信息;可以通過Quick Reference to Http Headers查看 Http Header 列表。
getcode():返回Http狀態(tài)碼。如果是http請求,200表示請求成功完成;404表示網(wǎng)址未找到;
geturl():返回獲取頁面的真實 URL。在 urlopen(或 opener 對象)可能帶一個重定向時,此方法很有幫助。獲取的頁面 URL 不一定跟真實請求的 URL 相同。
示例:
import urllib.request response = urllib.request.urlopen('https://python.org/') print("查看 response 的返回類型:",type(response)) print("查看反應(yīng)地址信息: ",response) print("查看頭部信息1(http header):\n",response.info()) print("查看頭部信息2(http header):\n",response.getheaders()) print("輸出頭部屬性信息:",response.getheader("Server")) print("查看響應(yīng)狀態(tài)信息1(http status):\n",response.status) print("查看響應(yīng)狀態(tài)信息2(http status):\n",response.getcode()) print("查看響應(yīng) url 地址:\n",response.geturl()) page = response.read() print("輸出網(wǎng)頁源碼:",page.decode('utf-8'))
2.2 Request()方法
使用request()來包裝請求,再通過urlopen()獲取頁面。
語法格式:
urllib.request.Request(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None)
示例:
import urllib.request url = "https://www.lagou.com/zhaopin/Python/?labelWords=label" headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36', 'Referer': 'https://www.lagou.com/zhaopin/Python/?labelWords=label', 'Connection': 'keep-alive' } req = request.Request(url, headers=headers) page = request.urlopen(req).read() page = page.decode('utf-8') print(page)
參數(shù)說明:
User-Agent
:這個頭部可以攜帶如下幾條信息:瀏覽器名和版本號、操作系統(tǒng)名和版本號、默認語言。這個數(shù)據(jù)可以從 網(wǎng)頁開發(fā)工具上的請求反應(yīng)信息中獲取(瀏覽器上一般按 F12 打開開發(fā)工具)。作用是用于偽裝瀏覽器。
Referer
:可以用來防止盜鏈,有一些網(wǎng)站圖片顯示來源 https://***.com ,就是檢查 Referer 來鑒定的。
Connection
:表示連接狀態(tài),記錄 Session 的狀態(tài)。
origin_req_host
:請求方的 host 名稱或者 IP 地址。
unverifiable
:指請求無法驗證,默認為 False。用戶并沒有足夠的權(quán)限來選擇接收這個請求結(jié)果,例如請求一個 HTML 文檔中的圖片,但沒有自動抓取圖像的權(quán)限,這時 unverifiable 為 True。
method
:指定請求使用的方法,例如 GET、POST、PUT 等。
參考:http://www.dbjr.com.cn/article/209542.htm
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Python通過OpenCV的findContours獲取輪廓并切割實例
這篇文章主要介紹了Python通過OpenCV的findContours獲取輪廓并切割實例,具有一定借鑒價值,需要的朋友可以參考下2018-01-01Python實現(xiàn)繁體轉(zhuǎn)為簡體的方法示例
這篇文章主要介紹了Python實現(xiàn)繁體轉(zhuǎn)為簡體的方法,涉及Python編碼轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下2018-12-12tensorflow ckpt模型和pb模型獲取節(jié)點名稱,及ckpt轉(zhuǎn)pb模型實例
今天小編就為大家分享一篇tensorflow ckpt模型和pb模型獲取節(jié)點名稱,及ckpt轉(zhuǎn)pb模型實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01pandas數(shù)據(jù)拼接的實現(xiàn)示例
這篇文章主要介紹了pandas數(shù)據(jù)拼接的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04python使用ctypes調(diào)用第三方庫時出現(xiàn)undefined?symbol錯誤詳解
python中時間的庫有time和datetime,pandas也有提供相應(yīng)的時間處理函數(shù),下面這篇文章主要給大家介紹了關(guān)于python使用ctypes調(diào)用第三方庫時出現(xiàn)undefined?symbol錯誤的相關(guān)資料,需要的朋友可以參考下2023-02-02修改Python的pyxmpp2中的主循環(huán)使其提高性能
這篇文章主要介紹了修改Python的pyxmpp2中的主循環(huán)使其提高性能,pyxmpp2是Python中使用需XMPP協(xié)議的一個常用工具,要的朋友可以參考下2015-04-04