爬蟲基礎----2

http協議和Chrome抓包工具

什麼是http和https協議:
HTTP協議:全稱是HyperText Transfer Protocol,中文意思是超文本傳輸協議,是一種發佈和接受HTML頁面的方法。服務器端口號是80端口。
HTTPS協議:是HTTP協議的加密版本,在HTTP下加入了SSL層。服務器端口號是443端口。

在瀏覽器中發送一個http請求的過程:
1.當用戶在瀏覽器的地址欄中輸入一個URL並按回車鍵之後,瀏覽器會向HTTP服務器發送HTTP請求。HTTP請求主要分爲“Get”和“Post”兩種方法。
2.當我們在瀏覽器輸入URLhttp://www.baidu.com的時候,瀏覽器發送一個Request請求去獲取http://www.baidu.com的html文件,服務器把Response文件對象發送回給瀏覽器。
3.瀏覽器分析Response中的HTML,發現其中引用了很多其他文件,比如images文件,CSS文件,JS文件。瀏覽器會自動再次發送Request去獲取圖片,CSS文件,或者JS文件。
4.當所有的文件都下載成功後,網頁會根據HTML語法結構,完整的顯示出來了。

url詳解:
URL是Unifore Resource Locator的簡寫,統一資源定位符。
一個URL由以下幾部分組成:
scheme://host:port/path/?query-string=xxx#anchor

scheme:代表的是訪問的協議,一般爲http或者https以及ftp等。
host:主機名,域名,比如www.baidu.com。
port:端口號,當你訪問一個網站的時候,瀏覽器默認使用80端口。
path:查找路徑,比如:www.jianshu.com/trending/now,後面的trending/now就是path。
query-string:查詢字符串,比如www.baidu.com/s?wd=python,後面的wd=python就是查詢字符串。
anchor:錨點,後臺一般不用管,前端用來做頁面定位的。

在瀏覽器中請求一個url,瀏覽器會對這個url進行一個編碼。除英文字母,數字和部分符號外,其他的全部使用百分號+十六進制碼進行編碼。

常用的請求方法:
在HTTP協議中,定義了八種請求方法。這裏介紹兩種常用的請求方法,分別是get請求和post請求。
1.get請求:一般情況下,只從服務器獲取數據下來,並不會對服務器資源產生任何影響的時候會使用get請求。
2.post請求:向服務器發送數據(登錄),上傳文件等,會對服務器資源產生影響的時候會使用post請求。
以上是在網站併發中常用的兩種方法。並且一般情況下都會遵循使用的原則。但是有的網站和服務都爲了做反爬蟲機制,也經常會不按常理出牌,有可能一個應該使用get方法的請求就一定要改成post請求,這個要視情況而定。

請求頭常見參數:
在http協議中,向服務器發送一個請求,數據分爲三個部分,第一個是把數據放在url中,第二個是把數據放在body中(在post請求中),第三個就是把數據放在head中。這裏介紹在網絡爬蟲中經常會用到的一些請求頭參數;
1.User-Agent:瀏覽器名稱。這個在網絡爬蟲中經常會被使用到。請求一個網頁的時候,服務器通過這個參數就可以知道這個請求是由那種瀏覽器發送的。如果我們是通過爬蟲發送請求,那麼我們的User-Agent就是Python,這對於那些有反爬蟲機制的網站來說,可以輕易的判斷你這個請求是爬蟲。因此我們要經常設置這個值爲一些瀏覽器的值,來僞裝我們的爬蟲。
2.Referer:表明當前這個請求是從哪個url過來的。這個一般也可以用來做反爬蟲技術。如果不是從指定頁面過來的,那麼就不做相關的相應。
3.Cookie:http協議是無狀態的。也就是同一個人發送了兩次請求,服務器沒有能力知道這兩個請求是否來自同一個人。因此這時候就用cookie來做標識。一般如果想要做登錄後才能訪問的網站,那麼就需要發送cookie信息了。

常見響應狀態碼:
1.200:請求正常,服務器正常的返回數據。
2.301:永久重定向。比如在訪問www.jingdong.com的時候會重定向到www.jd.com。
3.302:臨時重定向。比如在訪問一個需要登錄的頁面的時候,而此時沒有登錄,那麼就會重定向到登錄頁面。
4.400:請求的url在服務器上找不到。換句話說就是請求url錯誤。
5.403:服務器拒絕訪問,權限不夠。
6.500:服務器內部錯誤。可能是服務器出現bug了。

Chrome抓包工具:
Chrome瀏覽器是一個非常親近開發者的瀏覽器。可以方便的查看網絡請求以及發送的參數,對着網頁:右鍵>檢查,然後就可以打開開發者選項。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章