Python筆記(十三):urllib模組

來源:互聯網
上載者:User

標籤:索引值   web伺服器   檔案名稱   param   name   password   狀態代碼   行資料   top   

(一)      URL地址

URL地址組件

URL組件

說明

scheme

網路通訊協定或下載方案

net_loc

伺服器所在地(也許含有使用者資訊)

path

使用(/)分割的檔案或CGI應用的路徑

params

選擇性參數

query

串連符(&)分割的一系列索引值對

fragment

指定文檔內特定錨的部分

net_loc組件

user:[email protected]:port

組件

說明

user

使用者名稱或登入

password

使用者密碼

host

運行web伺服器的電腦名稱或地址(必需)

port

連接埠號碼(如果不是預設的80)

 

(二)      urllib

    這裡主要說明urllib.request和urllib.parse.

(三)      urllib.request

urllib.request

組件

說明

urlopen(url,data=None)

開啟URL連結,並返回一個檔案類型對象,就像open用二進位唯讀方式在本地開啟了一個檔案一樣。

url:可以是url字串,也可以是請求對象

data:url是post請求時,可以指定要傳的資料

urlretrieve(url,filename=None)

下載url中的檔案

filename:檔案名稱及路徑(沒有指定路徑則存放到當前工作目錄下)

urlopen對象方法

組件

說明

read()

讀取所有資料

readline()

讀取一行資料

readlines()

讀取所有行,作為列表返回

fileno()

返迴文件控制代碼

close()

關閉url串連(close及上面4個方法和open的同名方法是一樣的)

info()

返回MIME(多目標網際網路郵件擴充)標頭檔。這個標頭檔通知瀏覽器返回的檔案類型、以及可用哪類應用程式開啟。

geturl()

返回真正的url(例如如果出現重新導向,就可以從最終開啟的檔案中獲得真正的url)

getcode()

返回HTTP狀態代碼


1 import urllib.request 2 url = ‘https://tieba.baidu.com/p/5475267611‘ 3 #開啟url(就像用open二進位唯讀方式開啟一個檔案一樣),使用read讀取所有資料 4 html = urllib.request.urlopen(url).read() 5 print(type(html)) 6 7 url_file = ‘https://imgsa.baidu.com/forum/w%3D580/sign=99114e38abec08fa260013af69ef3d4d/e549b13533fa828bc80c7764f61f4134960a5a85.jpg‘ 8 #下載url中的檔案並儲存 9 urllib.request.urlretrieve(url_file,‘C:\Temp\\1.jpg‘)10 11 #返回MIEM標頭檔12 html_info = urllib.request.urlopen(url).info()13 print(html_info)

(四)      urlib.parse

urlib.parse

函數

說明

urlparse(urlstr)

將url解析為一個元組(scheme=‘‘, netloc=‘‘, path=‘‘, params=‘‘, query=‘‘, fragment=‘‘)

urlunparse(urltup)

和urlparse相反,將url組件(一個元組)拼接為完整的url

urljoin(base,url)

將base的根網域名稱和url拼接為一個完整的url

base:函數會自動截取net_loc及前面的所有內容


1 import urllib.parse 2 3 url = ‘https://www.cnblogs.com/cate/python/‘ 4 newurl = ‘/cate/ruby/‘ 5 #將url解析為一個元組(scheme=‘‘, netloc=‘‘, path=‘‘, params=‘‘, query=‘‘, fragment=‘‘) 6 urlpar = urllib.parse.urlparse(url) 7 print(‘urlparse樣本:‘,urlpar) 8 #和urlparse剛好相反,將元組(scheme=‘‘, netloc=‘‘, path=‘‘, params=‘‘, query=‘‘, fragment=‘‘)拼接為完整的url 9 urlunp = urllib.parse.urlunparse(urlpar)10 print(‘urlunparse樣本:‘,urlunp)11 #將url netloc及前面部分的內容與newurl串連起來12 url_ruby = urllib.parse.urljoin(url,newurl)13 print(‘urljoin樣本:‘,url_ruby)

Python筆記(十三):urllib模組

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.