urllib 正則

urllib庫的基本使用

所謂網(wǎng)頁抓取,就是把URL地址中指定的網(wǎng)絡(luò)資源從網(wǎng)絡(luò)流中讀取出來,保存到本地。

urllib的模塊:

request: 它是最基本的HTTP請求模塊,可以用來模擬發(fā)送請求,就像在瀏覽器中輸入網(wǎng)址,然后敲擊回車鍵一樣,使用的時候只需要給庫方法傳入相關(guān)的URL和相關(guān)的參數(shù)即可
error: 異常處理模塊,如果出現(xiàn)請求錯誤,我們可以使用這個模塊來捕獲異常,然后進(jìn)行重試或者其他操作,保證程序不會意外終止.

parse: 這是一個工具模塊,提供了許多url的處理方法,比如拆分,解析,合并等等

常用參數(shù):

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

Request:類的相關(guān)參數(shù)

url 參數(shù)是請求鏈接,這個是必傳參數(shù),其他的都是可選參數(shù)。

data 參數(shù)跟 urlopen() 中的 data 參數(shù)用法相同。

headers 是一個字典。它除了在 Request 中添加,還可以通過調(diào)用 Reques t實例的 add_header() 方法來添加請求頭。

unverifiable 參數(shù)表示這個請求是否是無法驗證的,默認(rèn)值是False。意思就是說用戶沒有足夠權(quán)限來選擇接收這個請求的結(jié)果。例如我們請求一個HTML文檔中的圖片,但是我們沒有自動抓取圖像的權(quán)限,我們就要將 unverifiable 的值設(shè)置成 True。(這個參數(shù)我們不需要設(shè)置)

method 參數(shù)指的是發(fā)起的 HTTP 請求的方式

data(默認(rèn)空):是伴隨 url 提交的數(shù)據(jù)(比如要post的數(shù)據(jù)),同時 HTTP 請求將從 "GET"方式 改為 "POST"方式。

headers(默認(rèn)空):是一個字典,包含了需要發(fā)送的HTTP報頭的鍵值對。

請求頭:

用不同的瀏覽器在發(fā)送請求的時候,會有不同的User-Agent頭。 urllib默認(rèn)的User-Agent頭為:Python-urllib/x.y(x和y是Python主版本和次版本號,例如 Python-urllib/3.5)

Header:

HTTP Request 中加入特定的 Header,來構(gòu)造一個完整的HTTP請求消息。
可以通過調(diào)用Request.add_header() 添加/修改一個特定的header
也可以通過調(diào)用Request.get_header()來查看已有的header。

正則:

單字符匹配

. 除換行符之外的任意字符
\d 表示數(shù)字
\D 匹配非數(shù)字
\w 匹配單詞字符[a-z,A-Z,0-9]
\W 匹配非單詞字符
\s 匹配空白字符,空格,\n \t ...
\S 匹配非空白字符
^ 匹配以...開頭
$ 匹配以...結(jié)尾
[0-9] => \d 匹配0-9

多字符匹配(貪婪匹配)

  • 匹配*前面的字符任意次數(shù)
  • 匹配+前面的字符至少1次
    ? 匹配?前面的字符0~1次
    {n,m} 匹配{n,m}前面的字符n~m次

多字符匹配(非貪婪匹配)

*?
+?
??

其他匹配

() 分組
| 邏輯或
\ 轉(zhuǎn)義字符

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容