這一章進行解析鏈結的操作
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輸出均為http,前者用的時索引,後者用的是屬性result = urlparse('',allow_fragments=false)
print(result[0],result.scheme)
urlparse的對立方法,接受的引數為可迭代物件,但它的長度必須為6,否則會丟擲引數數量不足或者過多的問題
結果為
這個與urlparse很像,只不過他不再是單獨解析params這一部分,只返回五個結果,上面的params會合併到path中去。
他返回的結果為splitresult類,也是乙個元組型別,即可以用元組也可以用屬性來表示
與urlunparse類似,唯一的區別也是一定要五個元素
這是生成鏈結的第二種方法,我們可以提供給其乙個base_url(基礎鏈結),作為第乙個引數,將新鏈結作為第二個引數,該方法會分析base_url的scheme,netloc和path這三個內容並對新鏈結缺失的部分進行補充,最後返回該結果
print(urljoin('','faq.html'))(ps:中間犯了個小錯誤,顯示eol while scanning string literal,即掃瞄字串的時候沒有,這一般是引號,括號成對出現的東西少了導致的)>>>/faq.html
可以得到base_url提供三項內容scheme,netloc,path當這三項在新的鏈結裡不存在,就予以補充,如果在新鏈結裡存在,就使用新鏈結的部分
這個在構造get請求時很有用,可將字典轉為get引數
這個相當於上面的對立方法,輸入
name=germy&age=22這個輸入相同的得到乙個元組,相當於上面的字典改為了元組的方法就會得到
可將中文字元轉為url編碼例項如下:
from urllib.parse import quote輸入url編碼後的結果,可以解碼回去keyword = '桌布'
url = '/s?wd'+ quote(keyword)
print(url)
>>>/s?wd%e5%a3%81%e7%ba%b8
from urllib.parse import quoteurl = '/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 又被稱為網頁蜘蛛,是一種按照一定的規則,自動地抓取 資訊的程式或者指令碼。爬蟲其實是通過編寫程式,模擬瀏覽器上網,然後讓其去網際網路上抓取資料的過程。爬蟲的價值 抓取網際網路上的資料,為我所用,有了大量的資料,就如同有了乙個資料銀行一樣,下一步就是如何將這些資料...