国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > Python > 正文

Python爬蟲之urllib基礎(chǔ)用法教程

2024-09-09 19:02:13
字體:
供稿:網(wǎng)友

綜述

本系列文檔用于對Python爬蟲技術(shù)進(jìn)行簡單的教程講解,鞏固自己技術(shù)知識的同時,萬一一不小心又正好對你有用那就更好了。

Python 版本是3.7.4

urllib庫介紹

它是 Python 內(nèi)置的HTTP請求庫,也就是說我們不需要額外安裝即可使用,它包含四個模塊(主要對前三個模塊進(jìn)行學(xué)習(xí)):

request : 它是最基本的 HTTP 請求模塊,我們可以用它來模擬發(fā)送一請求,就像在瀏覽器里輸入網(wǎng)址然后敲擊回車一樣,只需要給庫方法傳入 URL 還有額外的參數(shù),就可以模擬實(shí)現(xiàn)這個過程了。 error : 異常處理模塊,如果出現(xiàn)請求錯誤,我們可以捕獲這些異常,然后進(jìn)行重試或其他操作保證程序不會意外終止。 parse : 用于解析URL,提供了許多URL處理方法,比如拆分、解析、合并等等的方法,以及對參數(shù)的拼接等待。 robotparser : 主要是用來識別網(wǎng)站的robots.txt協(xié)議文件,然后判斷網(wǎng)站的那些數(shù)據(jù)可以爬,哪些數(shù)據(jù)不可以爬的,其實(shí)用的比較少。

urllib.request 介紹

urlopen()

1.參數(shù)說明(僅寫了四個最常用的參數(shù))

url : 爬取目標(biāo)的URL;
data : 請求參數(shù),如果設(shè)置該參數(shù),則請求默認(rèn)為post請求;沒有默認(rèn)為get請求;
timeout : 用于設(shè)置超時時間,單位為秒;
context : 必須是一個ssl.SSLContext類型,用來指定SSL設(shè)置,忽略未認(rèn)證的CA證書;

2.具體用法

GET 請求方式

# 導(dǎo)入urllib庫import urllib.request  # 向指定的url發(fā)送請求,并返回服務(wù)器響應(yīng)的類文件對象 url = "http://www.baidu.com" response = urllib.request.urlopen(url=url) print(type(response))  # 類文件對象支持文件對象的操作方法,如read()方法讀取文件全部內(nèi)容,返回字符串 html = response.read() # html = response.readline() # 讀取一行 # html = response.readlines() # 讀取多行,返回列表 # 打印響應(yīng)結(jié)果(byte類型) print(html) # 打印響應(yīng)結(jié)果(utf-8類型) # 二進(jìn)制和字符串之間的相互轉(zhuǎn)碼使用 encode() 和 decode() 函數(shù) # encode() 和 decode() 可帶參數(shù),不寫默認(rèn)utf-8,其他不再特別說明 print(html.decode()) # 打印狀態(tài)碼 # print(response.get_code()) print(response.status) # 獲取響應(yīng)頭 print(response.getheaders()) # 獲取響應(yīng)頭Server信息 print(response.getheader('Server')) # 獲取響應(yīng)結(jié)果原因 print(response.reason)

POST 請求方式

# 導(dǎo)入urllib庫import urllib.parseimport urllib.request  # 向指定的url發(fā)送請求,并返回 post_url = 'https://fanyi.baidu.com/sug' # 傳入?yún)?shù) form_data = { 'kw': 'honey' } # 格式化參數(shù) form_data = urllib.parse.urlencode(form_data).encode()  response = urllib.request.urlopen(url=post_url, data=form_data) # 打印服務(wù)器響應(yīng)的類文件對象 print(type(response))  # 類文件對象支持文件對象的操作方法,如read()方法讀取文件全部內(nèi)容,返回字符串 html = response.read() # 打印響應(yīng)結(jié)果(byte類型) print(html) # 打印響應(yīng)結(jié)果(utf-8類型) print(html.decode()) # 打印狀態(tài)碼 print(response.status) # print(response.getcode()) # 獲取響應(yīng)頭 print(response.getheaders()) # 獲取響應(yīng)頭Server信息 print(response.getheader('Server')) # 獲取響應(yīng)結(jié)果原因 print(response.reason)

urlretrleve()

1.參數(shù)說明

url : 下載鏈接地址;
filename : 指定保存本地路徑(如果參數(shù)未指定,urllib會生成一個臨時文件保存數(shù)據(jù));

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 武汉市| 长海县| 连南| 廊坊市| 广德县| 阳西县| 和田县| 应城市| 鄂州市| 阜康市| 包头市| 湘潭县| 墨竹工卡县| 喀喇沁旗| 香格里拉县| 旌德县| 平阳县| 林口县| 盖州市| 大城县| 繁峙县| 乐都县| 菏泽市| 岳西县| 瑞金市| 尼勒克县| 禄丰县| 肇源县| 广汉市| 红桥区| 纳雍县| 黄龙县| 阿荣旗| 四子王旗| 明溪县| 巴彦县| 革吉县| 玉环县| 陵水| 安陆市| 古丈县|