python3網路爬蟲學習 基本庫的使用(4)

2022-05-24 22:21:11 字數 2700 閱讀 6530

這一章進行解析鏈結的操作

urllib庫里提供了乙個parse模組,他定義了url的標準介面,實現url各部分的抽取,合併以及鏈結轉換,它支援多種協議,如http,https,ftp,file等...

下面我們來介紹裡面的一些方法:

該方法可以實現url的識別與分段

可見返回結果為parseresult型別,包含六個部分,分別為scheme,代表協議,第乙個 / 前面為網域名稱,即為netloc,後面是path,即為路徑,分號前面為params,即為引數,問號後面為查詢條件,一般用作查詢條件的,用於get型別的url,#後面是瞄點,用於直接定位頁面內部的下拉位置

利用urlparse可將其拆開來,但其還有更高階的用法,來看看他的api:

可見fragment被忽略掉了,而當我們把params和query從url裡面省略時,則我們得到的fragment便會被解析為path的一部分

返回的parseresult實際為乙個元組:

from urllib.parse import urlparse

result = urlparse('',allow_fragments=false)

print(result[0],result.scheme)

輸出均為http,前者用的時索引,後者用的是屬性

urlparse的對立方法,接受的引數為可迭代物件,但它的長度必須為6,否則會丟擲引數數量不足或者過多的問題

結果為

這個與urlparse很像,只不過他不再是單獨解析params這一部分,只返回五個結果,上面的params會合併到path中去。

他返回的結果為splitresult類,也是乙個元組型別,即可以用元組也可以用屬性來表示

與urlunparse類似,唯一的區別也是一定要五個元素

這是生成鏈結的第二種方法,我們可以提供給其乙個base_url(基礎鏈結),作為第乙個引數,將新鏈結作為第二個引數,該方法會分析base_url的scheme,netloc和path這三個內容並對新鏈結缺失的部分進行補充,最後返回該結果

print(urljoin('','faq.html'))

>>>/faq.html

(ps:中間犯了個小錯誤,顯示eol while scanning string literal,即掃瞄字串的時候沒有,這一般是引號,括號成對出現的東西少了導致的)

可以得到base_url提供三項內容scheme,netloc,path當這三項在新的鏈結裡不存在,就予以補充,如果在新鏈結裡存在,就使用新鏈結的部分

這個在構造get請求時很有用,可將字典轉為get引數

這個相當於上面的對立方法,輸入

name=germy&age=22

就會得到

這個輸入相同的得到乙個元組,相當於上面的字典改為了元組的方法

可將中文字元轉為url編碼例項如下:

from urllib.parse import quote

keyword = '桌布'

url = '/s?wd'+ quote(keyword)

print(url)

>>>/s?wd%e5%a3%81%e7%ba%b8

輸入url編碼後的結果,可以解碼回去

from urllib.parse import quote

url = '/s?wd%e5%a3%81%e7%ba%b8『』

print(unquote(url))

>>>/s?wd=桌布

Python 3 網路爬蟲

python 原來還可以這樣玩 python爬蟲,破解有道翻譯介面引數 破解有道翻譯反爬蟲機制 python3網路爬蟲快速入門實戰解析 article details 78123502 python3網路爬蟲 五 python3安裝scrapy article details 60156205 py...

Python3 網路爬蟲 1

準備開始寫一些python3關於爬蟲相關的東西,主要是一些簡單的網頁爬取,給身邊的同學入門看。首先我們向網路伺服器傳送get請求以獲取具體的網頁,再從網頁中讀取html內容。python view plain copy print?coding utf 8 from urllib.request i...

初識Python3網路爬蟲

定義 網路爬蟲 web spider 又被稱為網頁蜘蛛,是一種按照一定的規則,自動地抓取 資訊的程式或者指令碼。爬蟲其實是通過編寫程式,模擬瀏覽器上網,然後讓其去網際網路上抓取資料的過程。爬蟲的價值 抓取網際網路上的資料,為我所用,有了大量的資料,就如同有了乙個資料銀行一樣,下一步就是如何將這些資料...