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

首頁 > 編程 > Python > 正文

Python使用urllib2獲取網絡資源實例講解

2020-02-23 04:59:15
字體:
來源:轉載
供稿:網友

這是具有利用不同協議獲取URLs的能力,他同樣提供了一個比較復雜的接口來處理一般情況,例如:基礎驗證,cookies,代理和其他。
它們通過handlers和openers的對象提供。
urllib2支持獲取不同格式的URLs(在URL的":"前定義的字串,例如:"ftp"是"ftp:python.ort/"的前綴),它們利用它們相關網絡協議(例如FTP,HTTP)
進行獲取。這篇教程關注最廣泛的應用--HTTP。
對于簡單的應用,urlopen是非常容易使用的。但當你在打開HTTP的URLs時遇到錯誤或異常,你將需要一些超文本傳輸協議(HTTP)的理解。
最權威的HTTP文檔當然是RFC 2616(http://rfc.net/rfc2616.html)。這是一個技術文檔,所以并不易于閱讀。這篇HOWTO教程的目的是展現如何使用urllib2,
并提供足夠的HTTP細節來幫助你理解。他并不是urllib2的文檔說明,而是起一個輔助作用。
獲取 URLs

最簡單的使用urllib2將如下所示

代碼如下:
import urllib2
response = urllib2.urlopen('http://python.org/')
html = response.read()

urllib2的很多應用就是那么簡單(記住,除了"http:",URL同樣可以使用"ftp:","file:"等等來替代)。但這篇文章是教授HTTP的更復雜的應用。
HTTP是基于請求和應答機制的--客戶端提出請求,服務端提供應答。urllib2用一個Request對象來映射你提出的HTTP請求,在它最簡單的使用形式中你將用你要請求的
地址創建一個Request對象,通過調用urlopen并傳入Request對象,將返回一個相關請求response對象,這個應答對象如同一個文件對象,所以你可以在Response中調用.read()。

代碼如下:
import urllib2
req = urllib2.Request('//www.jb51.net')
response = urllib2.urlopen(req)
the_page = response.read()

記得urllib2使用相同的接口處理所有的URL頭。例如你可以像下面那樣創建一個ftp請求。

代碼如下:
req = urllib2.Request('ftp://example.com/')

在HTTP請求時,允許你做額外的兩件事。首先是你能夠發送data表單數據,其次你能夠傳送額外的關于數據或發送本身的信息("metadata")到服務器,此數據作為HTTP的"headers"來發送。
接下來讓我們看看這些如何發送的吧。
Data數據
有時候你希望發送一些數據到URL(通常URL與CGI[通用網關接口]腳本,或其他WEB應用程序掛接)。在HTTP中,這個經常使用熟知的POST請求發送。這個通常在你提交一個HTML表單時由你的瀏覽器來做。
并不是所有的POSTs都來源于表單,你能夠使用POST提交任意的數據到你自己的程序。一般的HTML表單,data需要編碼成標準形式。然后做為data參數傳到Request對象。編碼工作使用urllib的函數而非
urllib2。

代碼如下:
import urllib
import urllib2

url = '//www.jb51.net'
values = {'name' : 'Michael Foord',
          'location' : 'Northampton',

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 射洪县| 三穗县| 呼图壁县| 观塘区| 宜宾县| 镇远县| 桂东县| 涪陵区| 波密县| 年辖:市辖区| 方正县| 洪江市| 南汇区| 通江县| 龙游县| 甘孜县| 新乡县| 简阳市| 乡城县| 舞钢市| 苍山县| 正阳县| 柳江县| 辉县市| 张北县| 镇原县| 陆良县| 驻马店市| 抚顺县| 莫力| 江西省| 陈巴尔虎旗| 新乡县| 乐业县| 鸡西市| 卢湾区| 会宁县| 景东| 丰都县| 文化| 汉中市|