urllib的操作與使用--1

來源:互聯網
上載者:User

標籤:bytes   返回   sep   查看   搜尋引擎最佳化   使用   exp   2.7   date   

#################################################
‘‘‘
版本:python2.7
編輯器:pycharm
標準庫:urllib
header網頁頭部資訊:
server:centos、microsoft-IIs
content-type:text/html;charset=GBK
last-modified:更新資訊


‘‘‘
import urllib
#查看urllib中所擁有的方法及變數
# print dir(urllib)
# #利用help來查看urllib協助文檔
print help(urllib)
print help(urllib.urlopen)
url ="http://www.iplaypython.com/"
html = urllib.urlopen(url)
print html.read()
print html.info()


‘‘‘
Date: Fri, 01 Sep 2017 16:16:50 GMT      #美國地區現在時間
Server: Apache                           #linux系統下的apache伺服器
Last-Modified: Mon, 28 Aug 2017 02:05:22 GMT    #最進更新時間
ETag: "52316-112e9-557c6ba29dc80"   #etag是表示搜尋引擎最佳化,搜尋引擎也是根據這個標籤與上面一個標籤來判斷你的搜尋引擎是否更新
Accept-Ranges: bytes
Content-Length: 70377
Vary: Accept-Encoding
Connection: close
Content-Type: text/html
‘‘‘


#擷取網頁的狀態代碼
print html.getcode()
#玩蛇王是utf-8的編碼,所以就不用進行轉編碼
#測試一個不是utf-8的網站
url1 = "http://www.163.com/"
html1 = urllib.urlopen(url1)
# print html1.read().decode(‘gbk‘).encode(‘utf-8‘)
#查看163.com的標頭檔資訊
# print html1.info()


‘‘‘
結果如下:
Expires: Fri, 01 Sep 2017 16:12:59 GMT
Date: Fri, 01 Sep 2017 16:11:39 GMT              #伺服器資訊所在地區的現在的時間
Server: nginx                                    #伺服器類型(linux或者是windows等)
Content-Type: text/html; charset=GBK             #網頁編碼
Vary: Accept-Encoding,User-Agent,Accept
Cache-Control: max-age=80
X-Via: 1.1 shq150:6 (Cdn Cache Server V2.0), 1.1 dunyidong72:1 (Cdn Cache Server V2.0)
Connection: close
‘‘‘


#通過擷取該網頁的狀態代碼來判斷該網頁是否可以訪問,如果輸出結果為200則可以訪問,出現其他的則不可以訪問。
print html1.getcode()
#擷取網址
print html1.geturl()


‘‘‘
普及網頁的狀態代碼的內容:
200:表示可以正常訪問
301:重新導向,自己去百度。
404:網頁不存在#可以隨便創造一個網址來進行判斷
403:禁止訪問:許可權問題/或者是禁止爬蟲抓取
500:伺服器忙碌
<http權威指南,專門介紹http協議>
web開發,這本書是必備的
‘‘‘


#網頁抓取完成後,下載網頁
urllib.urlretrieve(url,‘E:\\abc.txt‘)#也可儲存一個html檔案。
html.close()
html1.close()

 

 

 

 

 

 

 

 


########################################################################################
#1 decode()方法之ignore
# import urllib
# url = "http://www.163.com/"
# html = urllib.urlopen(url)
# content = html.read().decode("gbk",‘ignore‘).encode("utf-8")
# print content



# 2 條件判斷語句,自動化處理抓取的結果
import urllib
url = "http://www.iplaypython.com/"

html=urllib.urlopen(url)
print html.read()
#相當於:html = urllib.urlopen(url).read()
#Pprint html

# print html.getcode()
#相當於:html = urllib.urlopen(url).getcode()
#print html

# print html.geturl()
# print html.info()

code = html.getcode()
if code ==200:
    print "網頁正常"
    print html.read()
    print html.info()
else:
    print "網頁有問題"


###############################################################
import urllib
url = "http://www.iplaypython.com"
info = urllib.urlopen(url).info()
print info
‘‘‘
執行結果為:
Date: Sat, 02 Sep 2017 05:08:27 GMT
Server: Apache
Last-Modified: Mon, 28 Aug 2017 02:05:22 GMT
ETag: "52316-112e9-557c6ba29dc80"
Accept-Ranges: bytes
Content-Length: 70377
Vary: Accept-Encoding
Connection: close
Content-Type: text/html
‘‘‘

print info.getparam("charset")
#返回結果為:None   從中可知,有些網站時沒有聲明頭部資訊。



#我們修改一個網址來執行
url1="http://www.163.com"
info1=urllib.urlopen(url1).info()
print info1
‘‘‘
在這裡為什麼要輸入一個字串的參數呢?
其傳回值是在哪裡擷取的(標頭檔的內容類型中擷取的)
Expires: Sat, 02 Sep 2017 05:09:47 GMT
Date: Sat, 02 Sep 2017 05:08:27 GMT
Server: nginx
Content-Type: text/html; charset=GBK
Vary: Accept-Encoding,User-Agent,Accept
Cache-Control: max-age=80
X-Via: 1.1 shq153:8 (Cdn Cache Server V2.0), 1.1 dunyidong75:4 (Cdn Cache Server V2.0)
Connection: close
我們從標頭檔資訊中可知:其內容類型中有charset=GBK,
‘‘‘
print info1.getparam("charset")
#返回結果為:GBK

urllib的操作與使用--1

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.