爬蟲(1)爬蟲概述,爬蟲抓包工具

在這裏插入圖片描述

爬蟲前奏

爬蟲的實際例子:

  • 搜索引擎(百度,谷歌,360)
  • 伯樂在線
  • 惠惠購物助手
  • 數據分析和研究

什麼是網絡爬蟲?

通俗的理解:爬蟲是一個模擬人類請求網站行爲的程序.可以自動請求網頁,並把數據抓取下來,然後使用一定的規則提取有價值的數據

通用爬蟲和聚焦爬蟲

  • 通用爬蟲:通用爬蟲是搜索引擎抓取系統(百度,谷歌,搜狗等)的重要組成部分.主要是將互聯網上的網頁下載到本地,形成一個互聯網內容的鏡像備份.
  • 聚焦爬蟲:是面向特定請求的一種網絡爬蟲程序,他與通用爬蟲的區別在於:聚焦爬蟲在實施網頁抓取時會對內容進行篩選.

http協議和Chrome抓包工具

什麼是http和https協議:

  • HTTP協議:全稱是HyperText Transfer Protocol,中文意思是超文本傳輸協議,是一種發佈和接受HTML頁面的方法,服務器端口號是80端口
  • HTTPS協議:是HTTP協議的加密版本,在HTTP下加入了SSL層,服務器端口號是443端口,一般要求網頁安全的都會使用https協議(例如一些支付的頁面)

在瀏覽器中發送一個http請求的過程:

  • 當用戶在瀏覽器的地址欄輸入一個URL並按回車鍵之後,瀏覽器會向HTTP服務器發送HTTP請求.HTTP請求主要分爲"GET"和"POST"兩種方法.
  • 當我們在瀏覽器輸入URL http://www.baidu.com的時候,瀏覽器發送一個Requset請求去獲取 http://www.baidu.com的html文件,服務器吧Response文件對象發送返回給瀏覽器
  • 瀏覽器分析Response中的HTML,發現其中引用了很多其他的文件,比如image文件,CSS文件,JS文件,瀏覽器會自動再次發送Requset去獲取圖片,CSS文件,或者JS文件
  • 當所有的文件都下載成功後,網頁會提供HTML語法結構,完整的顯示出來

URL詳解

URL稱爲統一資源定位符
一個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=胡歌,後面的wd=胡歌就是查詢字符串
  • anchor : 錨點,後臺一般不用管,前端用來做頁面定位的.
    在瀏覽器中請求一個url,瀏覽器會對這個url進行編碼.除了英文字母,數字和部分符號外,其餘的全部使用百分號+十六進制碼進行編碼

常用請求方法:

在http協議中,定義了八種請求方法,但是常用的兩種請求方法分別是"POST"請求和"GET"請求

  • get請求 : 一般情況下,只從服務器獲取數據下來,並不會對服務器資源產生任何影響的時候會用到get請求
  • post請求 : 想服務器發送數據(登錄),上傳文件等,會對服務器資源產生影響的時候會用post請求
    以上是在網站開發中常用的兩種方法,並且一般情況下都會遵循使用的原則,但是一些網站爲了反爬蟲機制,會在本應該發送get請求的地方,使用post請求.要視情況而定.

常見請求頭參數:

在http協議中,向服務器發送一個請求,數據分爲三個部分,第一個是吧數據放到url中,第二個是把數據放到body中(在post請求中),第三個是吧數據放到head中.這裏介紹在網絡爬蟲中經常用到的一些請求頭參數.

  • User-Agent : 瀏覽器名字.這個在網絡爬蟲中經常會被使用到,在請求一個網頁的時候,服務器通過這個參數就可以知道這個請求是由哪種瀏覽器發送的,如果我們是通過爬蟲發送請求,那麼我們的User-Agent就是python,這對於那些有反爬蟲機制的網站來說,可以輕易的判斷你這個請求是由python程序發出的,因此我們要經常設置這個值爲一些瀏覽器的值,來僞裝我們的爬蟲.
  • Referer : 表明當前這個請求是由哪個url過來的.這個一般也可以用來做反爬蟲技術.如果不是從指定頁面過來的,那麼就不響應相關的內容.
  • Cookie:http協議是無狀態的,也就是同一個人發送了兩次請求,服務器沒有能力知道這兩個請求是否來自同一個人,因此這個時候就用cookie來標示,一般如果想要登錄後才能訪問的網站,那麼就需要發送cookie信息了.

常見響應狀態碼

  • 200 : 請求正常,服務器正常的返回數據
  • 301 : 永久重定向.
  • 302 : 臨時重定向,一般是訪問需要登錄的內容,會重定向到登錄頁面
  • 400 :請求的url在服務器上找不到.
  • 403 : 服務器拒絕訪問,權限不夠
  • 500 : 服務器內部錯誤,可能是服務器出現bug

Chrome抓包工具

F12或者右鍵檢查進入到開發者模式,可以查看網絡請求的參數等信息.

本文是博主學習視頻的時一些筆記,如有侵權聯繫我,我會刪除

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