Python3爬蟲學(xué)習(xí)入門

Http協(xié)議簡述

引自:Python3.x爬蟲教程:爬網(wǎng)頁、爬圖片、自動登錄

HTTP是Hyper Text Transfer Protocol(超文本傳輸協(xié)議)的縮寫。
Http請求響應(yīng)模型:



Http請求流程(又稱為事務(wù)):


  1. 建立連接
  2. 建立連接后,客戶機發(fā)送一個請求給服務(wù)器,請求方式的格式為:統(tǒng)一資源標識符(URL)、協(xié)議版本號,后邊是MIME信息包括請求修飾符、客戶機信息和可能的內(nèi)容。
  3. 服務(wù)器接到請求后,給予相應(yīng)的響應(yīng)信息,其格式為一個狀態(tài)行,包括信息的協(xié)議版本號、一個成功或錯誤的代碼,后邊是MIME信息包括服務(wù)器信息、實體信息和可能的內(nèi)容。
  4. 客戶端接收服務(wù)器所返回的信息通過瀏覽器顯示在用戶的顯示屏上,然后客戶機與服務(wù)器斷開連接。
請求報頭

請求報頭允許客戶端向服務(wù)器端傳遞請求的附加信息以及客戶端自身的信息。


** 常用報頭:**

** 1. Accept **
Accept請求報頭域用于指定客戶端接受哪些類型的信息。
**eg **:Accept:image/gif,表明客戶端希望接受GIF圖象格式的資源;
Accept:text/html,表明客戶端希望接受html文本。
** 2. Accept-Charset **
Accept-Charset請求報頭域用于指定客戶端接受的字符集。
** eg **:Accept-Charset:iso-8859-1,gb2312.如果在請求消息中沒有設(shè)置這個域,缺省是任何字符集都可以接受。
** 3. Accept-Encoding **
Accept-Encoding請求報頭域類似于Accept,但是它是用于指定可接受的內(nèi)容編碼。
** eg **:Accept-Encoding:gzip.deflate.如果請求消息中沒有設(shè)置這個域服務(wù)器假定客戶端對各種內(nèi)容編碼都可以接受。
** 4. Accept-Language **
Accept-Language請求報頭域類似于Accept,但是它是用于指定一種自然語言。
** eg **:Accept-Language:zh-cn.如果請求消息中沒有設(shè)置這個報頭域,服務(wù)器假定客戶端對各種語言都可以接受。Authorization
** 5. Host **
Host請求報頭域主要用于指定被請求資源的Internet主機和端口號。
** eg **:http://www.guet.edu.cn/index.html
Host:www.guet.edu.cn 此處使用缺省端口號80
** 6. User-Agent **
User-Agent請求報頭域允許客戶端將它的操作系統(tǒng)、瀏覽器和其它屬性告訴服務(wù)器。不過,這個報頭域不是必需的。

響應(yīng)報頭

響應(yīng)報頭允許服務(wù)器傳遞不能放在狀態(tài)行中的附加響應(yīng)信息,以及關(guān)于服務(wù)器的信息和對Request-URI所標識的資源進行下一步訪問的信息。


**1. Location **
Location響應(yīng)報頭域用于重定向接受者到一個新的位置。Location響應(yīng)報頭域常用在更換域名的時候。
** 2.Server **
Server響應(yīng)報頭域包含了服務(wù)器用來處理請求的軟件信息。
** 3.WWW-Authenticate **
WWW-Authenticate響應(yīng)報頭域必須被包含在401(未授權(quán)的)響應(yīng)消息中,客戶端收到401響應(yīng)消息時候,并發(fā)送Authorization報頭域請求服務(wù)器對其進行驗證時,服務(wù)端響應(yīng)報頭就包含該報頭域。
** eg **:WWW-Authenticate:Basic realm=Basic Auth Test! //可以看出服務(wù)器對請求資源采用的是基本驗證機制。

Python3 爬蟲入門

#python3.4
#這是一個簡單的示例
import urllib.request
url = 'http://douban.com/'
webPage = urllib.request.urlopen(url)
data = webPage.read()
data = data.decode('UTF-8')
print(data)    #顯示網(wǎng)頁源代碼
print(type(webPage))    #顯示網(wǎng)頁類型:<class 'http.client.HTTPResponse'>
print(webPage.geturl())    #顯示網(wǎng)址:https://www.douban.com/
print(webPage.info())    #顯示網(wǎng)頁信息
'''Date: Thu, 13 Oct 2016 13:33:16 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 95363
Connection: close
Vary: Accept-Encoding
X-Xss-Protection: 1; mode=block
X-Douban-Mobileapp: 0
Expires: Sun, 1 Jan 2006 01:00:00 GMT
Pragma: no-cache
Cache-Control: must-revalidate, no-cache, private
Set-Cookie: ll="118318"; path=/; domain=.douban.com; expires=Fri, 13-Oct-2017 13:33:16 GMT
Set-Cookie: bid=GPcbKhAfcmA; Expires=Fri, 13-Oct-17 13:33:16 GMT; Domain=.douban.com; Path=/
X-DOUBAN-NEWBID: GPcbKhAfcmA
X-DAE-Node: sindar10c
X-DAE-App: sns
Server: dae
Strict-Transport-Security: max-age=15552000;  '''
print(webPage.getcode())    #返回狀態(tài)碼:200
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447...
    喜歡吃栗子閱讀 539評論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,568評論 19 139
  • HTTP是一個屬于應(yīng)用層的面向?qū)ο蟮膮f(xié)議,由于其簡捷、快速的方式,適用于分布式超媒體信息系統(tǒng)。它于1990年提出,...
    lilinjianshu閱讀 562評論 0 1
  • 引言 HTTP是一個屬于應(yīng)用層的面向?qū)ο蟮膮f(xié)議,由于其簡捷、快速的方式,適用于分布式超媒體信息系統(tǒng)。它于1990年...
    _燴面_閱讀 1,385評論 0 9
  • 水晶白世界橋的今天適合做斷舍離。清理掉那些在夢想道路上給我們潑冷水的負能量的人際關(guān)系。把空間留給能支持你未來發(fā)展的...
    艾人家家Aileen_LiLi閱讀 287評論 0 0

友情鏈接更多精彩內(nèi)容