我的個人博客主頁:如果’'真能轉(zhuǎn)義1??說1??的博客主頁
(1)關(guān)于Python基本語法學(xué)習(xí)---->可以參考我的這篇博客《我在VScode學(xué)Python》
(2)pip是必須的在我們學(xué)習(xí)python這門語言的過程中Python ---->> PiP 的重要性
Python urllib 庫是用于操作網(wǎng)頁 URL,并對網(wǎng)頁的內(nèi)容進(jìn)行抓取處理。
urllib是Python的一個模塊,提供了一系列用于處理URL的模塊。它可以用于發(fā)送HTTP請求 1、處理cookie以及處理web sockets等任務(wù)。
url是什么
URL(外文名:Uniform Resource Locator,中文名:統(tǒng)一資源定位符),統(tǒng)一資源定位符是對可以從互聯(lián)網(wǎng)上得到的資源的位置和訪問方法的一種簡潔的表示,是互聯(lián)網(wǎng)上標(biāo)準(zhǔn)資源的地址。互聯(lián)網(wǎng)上的每個文件都有一個唯一的URL,它包含的信息指出文件的位置以及瀏覽器應(yīng)該怎么處理它。它最初是由蒂姆·伯納斯·李發(fā)明用來作為萬維網(wǎng)的地址。
主要包含的模塊:
-
urllib.request(請求模塊):該模塊定義了幫助在復(fù)雜世界中打開URL(主要是HTTP)的函數(shù)和類——基本和摘要身份驗證、重定向、cookie等。
-
urllib.error(異常處理模塊):該模塊定義了由urllib.request引發(fā)的異常類。
-
urllib.parse(url解析模塊):該模塊定義了將URL解析為其組成部分的函數(shù),以及將URL組件組合成完整URL的函數(shù)。
-
urllib.robotparser(robots.txt解析模塊):該模塊提供了一個單一的類RobotFileParser,用于回答特定用戶代理是否被允許在發(fā)布robots.txt文件的網(wǎng)站上獲取URL。
【1】urllib.request(請求模塊) —> 用于打開 URL 的可擴展庫
(1)urllib.request.urlopen
urllib.request.urlopen()函數(shù)的主要工作是打開指定的URL并檢索響應(yīng)。
函數(shù)原型
urlopen() 方法不僅支持 HTTP 協(xié)議,還支持其他常見的協(xié)議,
- 如 FTP、SMTP 和 HTTPS。
- Telnet
- File / URL
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
- url:要打開的URL。
- data:這是一個可選參數(shù),用于指定要發(fā)送到服務(wù)器的數(shù)據(jù)。
如果不提供此參數(shù),則請求將是GET請求。如果提供了它,則請求將是POST請求。
- timeout:這是一個可選參數(shù),用于指定請求的超時時間(以秒為單位)。
如果服務(wù)器在此時間內(nèi)沒有響應(yīng),則會引發(fā)timeout異常。
- cafile:這是一個可選參數(shù),用于指定包含用于SSL驗證的CA證書的文件的路徑。
- capath:這是一個可選參數(shù),用于指定包含用于SSL驗證的CA證書的目錄的路徑。
- cadefault:這是一個可選參數(shù),用于指定是否使用系統(tǒng)的默認(rèn)CA證書進(jìn)行SSL驗證。
- context:這是一個可選參數(shù),用于指定用于請求的SSL上下文。
例子:
import urllib.request
response = urllib.request.urlopen('**你的網(wǎng)站**')
html = response.read()
print(html)
urllib.request.urlopen 函數(shù)用于打開 URL 你需要了解的網(wǎng)站。
然后,使用 read 方法將 URL 的內(nèi)容讀入變量 html 中。(方法獲取的響應(yīng)頁面的返回值。打開的 URL 中讀取內(nèi)容并返回字節(jié)字符串(bytes)。)
最后,使用 print 函數(shù)將 html 的內(nèi)容打印到控制臺。
(2)urllib.request.urlretrieve —>該函數(shù)檢索指定URL的內(nèi)容并將其保存到本地文件中。
urllib.request.urlretrieve(url, [filename=None, ]reporthook=None, data=None)
-
url:要檢索的URL。
-
filename:要將內(nèi)容保存到的本地文件名。如果未指定,則該函數(shù)將嘗試從URL中猜測文件名并將其保存到當(dāng)前工作目錄中。
-
reporthook:可選參數(shù),用于指定一個回調(diào)函數(shù),該函數(shù)將在檢索過程中被調(diào)用以顯示進(jìn)度信息。
例子
如果傳遞了一個文件名參數(shù),并且URL指向本地資源,則結(jié)果是從本地文件復(fù)制到新文件。
urllib.request.urlretrieve函數(shù)返回一個元組,其中包含新創(chuàng)建的數(shù)據(jù)文件的路徑以及生成的HTTPMessage對象。
【2】- urllib.error(異常處理模塊):該模塊定義了由urllib.request引發(fā)的異常類。
urllib.error.URLError(reason, *args):
這是所有在URL處理期間發(fā)生的異常的基類。當(dāng)無法打開或檢索URL時,會引發(fā)此異常。reason參數(shù)是一個字符串,用于描述錯誤的原因。args參數(shù)是一個元組,包含其他與錯誤相關(guān)的信息。urllib.error.HTTPError(url, code, msg, hdrs, fp):
這是URLError的子類,當(dāng)發(fā)生HTTP錯誤時引發(fā)。它包含有關(guān)HTTP錯誤代碼和原因的信息。url參數(shù)是引發(fā)錯誤的URL,code參數(shù)是HTTP錯誤代碼,msg參數(shù)是HTTP錯誤原因短語,hdrs參數(shù)是HTTP響應(yīng)頭,fp參數(shù)是一個文件對象,用于讀取錯誤響應(yīng)的主體。urllib.error.ContentTooShortError(msg, content)
: 這是URLError的子類,當(dāng)下載的內(nèi)容比預(yù)期的短時引發(fā)。msg參數(shù)是一個字符串,用于描述錯誤的原因。content參數(shù)是一個字節(jié)串,包含下載的內(nèi)容。
# 導(dǎo)入urllib.error模塊:
import urllib.error
【3】urllib.parse(url解析模塊):該模塊定義了將URL解析為其組成部分的函數(shù),以及將URL組件組合成完整URL的函數(shù)。
- urllib.parse.urlparse(urlstring, scheme='', allow_fragments=True)
-> ParseResult: 將URL解析為其組件,并返回一個包含解析結(jié)果的ParseResult對象。- urllib.parse.urlunparse(components)
-> str: 接受URL組件的元組并返回完整的URL字符串。- urllib.parse.urlencode(query, doseq=False, safe='', encoding=None, errors=None, quote_via=quote_plus)
-> str: 接受查詢參數(shù)的字典并返回URL編碼的字符串。- urllib.parse.parse_qs(qs, keep_blank_values=False, strict_parsing=False, encoding='utf-8', errors='replace', max_num_fields=None)
-> Dict[str, Union[str, List[str]]]: 接受URL編碼的查詢字符串并返回查詢參數(shù)的字典。
【4】 urllib.robotparser(robots.txt解析模塊):該模塊提供了一個單一的類RobotFileParser,用于回答特定用戶代理是否被允許在發(fā)布robots.txt文件的網(wǎng)站上獲取URL。
- urllib.robotparser.RobotFileParser(url=''):
創(chuàng)建一個新的RobotFileParser對象,該對象可以解析指定URL的robots.txt文件。- urllib.robotparser.set_url(url):
設(shè)置要解析的robots.txt文件的URL。- urllib.robotparser.read():
從指定的URL讀取robots.txt文件并解析其內(nèi)容。- urllib.robotparser.can_fetch(useragent, url):
檢查指定的用戶代理是否可以訪問指定的URL。如果可以,返回True;否則返回False。- urllib.robotparser.mtime():
返回上次讀取robots.txt文件的時間戳。- urllib.robotparser.modified():
返回robots.txt文件是否已被修改。
利用 urllib 庫獲取網(wǎng)絡(luò)資源
當(dāng)然獲取想要的網(wǎng)絡(luò)資源才是我們學(xué)習(xí)這篇文章的第一要義。
可以參考的的這篇博客:爬蟲想要的HTML文章來源:http://www.zghlxwxcb.cn/news/detail-435022.html
-
HTTP請求是指客戶端向服務(wù)器發(fā)送請求并從服務(wù)器接收響應(yīng)的過程。 ??文章來源地址http://www.zghlxwxcb.cn/news/detail-435022.html
到了這里,關(guān)于python ---->>利用 urllib 庫獲取網(wǎng)絡(luò)資源的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!