人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

python的rllib庫你了解嗎

發(fā)布日期:2021-12-15 12:34 | 文章來源:gibhub

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 ,當(dāng) 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 等。

參考:https://www.jb51.net/article/209542.htm

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注本站的更多內(nèi)容!

版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部