近年來,人工智能技術火爆全球,小到改變人們的衣食住行,作為人工智能核心技術的python編程語言,也逐漸走進大眾視野中,那么對于領出基礎的同學來說,怎么學好python編程語言爬蟲呢?
學好python編程語言中的爬蟲,那么就得學習相應的一些網絡協議的基礎知識,這樣你才可以在練習爬蟲的過程中做到游刃有余,今天八維職業學校帶領大家一起來看看,希望能夠幫助到大家。
在練習爬蟲的過程中主要會用到如下幾種知識:
瀏覽器訪問服務器的過程、HTTP消息概念、POST和GET請求、什么是Cookie
下面將從這幾方面進行講解和說明
一、瀏覽器訪問服務器的過程
1. 當你在訪問網頁時,不論是通過URL輸入域名或IP,還是點擊鏈接的時候,瀏覽器發送一個HTTP請求(Http Request)去獲取某一個網頁時. 服務器把相應的響應信息(Http Response)發送回給瀏覽器.
2. 瀏覽器分析Response中的 HTML信息,并且解析出來然后返回給用戶。
3.WEB應用程序在于服務器交互的過程中,HTTP請求和響應時發送的都是一個消息結構。
二、HTTP消息概念。當瀏覽器向服務器發送請求的時候,發出http請求消息報文,服務器返回數據時,發出http響應消息報文,這兩種類型的消息都是由一個起始行,消息頭,一個指示消息頭結束的空行和可選的消息體組成。http請求消息中,起始行包括請求方法,請求的資源, HTTP協議的版本號,消息頭包含各種屬性,消息體包含數據,GET請求并沒有消息主體,因此在消息頭后的空白行中沒有其他數據。Http響應消息中,起始行包括HTTP協議版本,http狀態碼和狀態,消息頭包含各種屬性,消息體包含服務器返回的數據內容。
下面用一個簡單的實例來說明一下
客戶端請求(Http Request):
Host cm.g.doubleclick.netUser-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0)Accept */*Accept-Language zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3Accept-Encoding gzip, deflateConnection keep-alive
服務端響應(Http Response):
(Status-Line) HTTP/1.1 200 OKDate Sun, 12 Nov 2017 13:36:22 GMTContent-Type text/htmlServer HTTP server (unknown)Content-Length 0X-XSS-Protection 1; mode=block
輸出結果:
Hello World!
需要注意的是HTTP常見返回值:
200 OK 服務器成功處理請求
301/302 Moved Permanently(重定向)請求的URL已移走。響應報文中應該包含一個Location URL,說明資源現在所處的位置
501 Internal Server Error 服務器遇到錯誤,使其無法對請求提供服務
HTTP響應示例
404 Not Found 未找到資源
304 Not Modified(未修改) 客戶的緩存資源是最新的,要客戶端使用緩存內容
三、POST和GET請求。HTTP協議定義了與服務器交互的不同方法,比較常用的有4種,Put(增),Delete(刪),Post(改),Get(查),即增刪改查:現在主要說一下用于爬蟲模擬登陸網站的兩種主要方式PST和GET方法(詳細內容大家可以自行百度):
這兩種請求方法在訪問瀏覽器資源時是必不可少的,在默認情況下,如果對MEthod不指定的話,提交方式為GET
兩者的主要區別如下:
GET請求的數據會附在URL之后(就是把數據放置在HTTP協議頭中),以?分割URL和傳輸數據,參數之間以&相連,如:
login.action?name=12345&password=456798&verify=%E4%BD%A0%E5%A5%BD。如果數據是英文字母/數字,原樣發送,如果是空格,轉換為+,如果是中文/其他字符,則直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX為該符號以16進制表示的ASCII。這種形式會把密碼等內容以明文方式展現在url中,所以它是不安全的。
POST把提交的數據則放置在是HTTP包的包體中。
四、什么是Cookie。Cookie,有時也用其復數形式 Cookies,指某些網站為了辨別用戶身份、進行 session 跟蹤而儲存在用戶本地終端上的數據(通常經過加密),通俗易懂的講解就是當你登陸一個網站,為了給用戶帶來良好的上網體驗,它可以記錄很多用戶初始化或自定義化的信息,比如什么時候第一次登錄及弱登錄態等方便用戶的使用。并且經過加密之后,保存在本地硬盤,當你再次瀏覽該網站時會展現你之前的訪問內容。對于詳細的cookie講解大家可以自行百度。
下一篇:python編程基礎知識爬蟲入門
學運維工程師有哪些發展方向?
在當今數字化時代,運維工程師在信息技術領域中扮演著至關重要的角色。隨著技術的不斷發展和企業對IT系統穩定性、可靠性要求的提高,學習成為一名運維工程師不僅具有廣闊的就業前景,還擁有眾多的發展方向。