python的rllib庫你了解嗎
urllib庫作用
urllib 庫 是Python內(nèi)置的 HTTP 請求庫。urllib 模塊提供的上層接口,使訪問 www 和 ftp 上的數(shù)據(jù)就像訪問本地文件一樣。我們爬取網(wǎng)頁的時(shí)候,經(jīng)常需要用到這個(gè)庫。
Urllib 庫下的幾種模塊的基本使用
一、urllib.request模塊
1.功能
urllib.request 模塊提供了最基本的構(gòu)造 HTTP (或其他協(xié)議如 FTP)請求的方法,利用它可以模擬瀏覽器的一個(gè)請求發(fā)起過程。利用不同的協(xié)議去獲取 URL 信息。它的某些接口能夠處理基礎(chǔ)認(rèn)證 ( 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ù), 默認(rèn)為 None ,當(dāng) data 不為 None 時(shí), urlopen() 提交方式為 Post; timeout:設(shè)置網(wǎng)站訪問超時(shí)時(shí)間
用例:
import urllib.request# 等價(jià)于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 返回一個(gè)類文件對象,并提供了如下方法:
read() , readline() , readlines() , fileno() , close() :這些方法的使用方式與文件對象完全一樣;
info():返回一個(gè)httplib.HTTPMessage對象,表示遠(yuǎn)程服務(wù)器返回的頭信息;可以通過Quick Reference to Http Headers查看 Http Header 列表。
getcode():返回Http狀態(tài)碼。如果是http請求,200表示請求成功完成;404表示網(wǎng)址未找到;
geturl():返回獲取頁面的真實(shí) URL。在 urlopen(或 opener 對象)可能帶一個(gè)重定向時(shí),此方法很有幫助。獲取的頁面 URL 不一定跟真實(shí)請求的 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 :這個(gè)頭部可以攜帶如下幾條信息:瀏覽器名和版本號、操作系統(tǒng)名和版本號、默認(rèn)語言。這個(gè)數(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:指請求無法驗(yàn)證,默認(rèn)為 False。用戶并沒有足夠的權(quán)限來選擇接收這個(gè)請求結(jié)果,例如請求一個(gè) HTML 文檔中的圖片,但沒有自動(dòng)抓取圖像的權(quán)限,這時(shí) unverifiable 為 True。
method:指定請求使用的方法,例如 GET、POST、PUT 等。
參考:http://www.dhdzp.com/article/209542.htm
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Gauss-Seidel迭代算法的Python實(shí)現(xiàn)詳解
這篇文章主要介紹了Gauss-Seidel迭代算法的Python實(shí)現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-06-06
跟老齊學(xué)Python之一個(gè)免費(fèi)的實(shí)驗(yàn)室
學(xué)習(xí)Python也要做實(shí)驗(yàn),也就是嘗試性地看看某個(gè)命令到底什么含義。在《集成開發(fā)環(huán)境(IDE)》一章中,我們介紹了Python的IDE時(shí),給大家推薦了IDLE,進(jìn)入到IDLE中,看到>>>符號,可以在后面輸入一行指令。其實(shí),這就是一個(gè)非常好的實(shí)驗(yàn)室。2014-09-09
Python 基于wxpy庫實(shí)現(xiàn)微信添加好友功能(簡潔)
這篇文章主要介紹了Python 基于wxpy庫實(shí)現(xiàn)微信添加好友功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11
C#中使用XPath定位HTML中的img標(biāo)簽的操作示例
隨著互聯(lián)網(wǎng)內(nèi)容的日益豐富,網(wǎng)頁數(shù)據(jù)的自動(dòng)化處理變得愈發(fā)重要,圖片作為網(wǎng)頁中的重要組成部分,其獲取和處理在許多應(yīng)用場景中都顯得至關(guān)重要,本文將詳細(xì)介紹如何在 C# 應(yīng)用程序中使用 XPath 定位 HTML 中的 img 標(biāo)簽,并實(shí)現(xiàn)圖片的下載,需要的朋友可以參考下2024-07-07

