1. 程式人生 > >爬蟲基礎知識大全

爬蟲基礎知識大全

ip協議 blank 查詢 agent 破解 itl pro 模擬 取整

一 什麽是爬蟲

  爬蟲就是通過編寫程序模擬瀏覽器上網,然後讓其去互聯網上抓取數據的過程。

二 爬蟲的分類

1.通用爬蟲: 簡單來講就是盡可能的;把互聯網上的所有的網頁下載下來,放到本地服務器裏形成備分,在對這些網頁做相關處理(提取關鍵字、去掉廣告),最後提供一個用戶檢索接口。

2.聚焦爬蟲:聚焦爬蟲是根據指定的需求抓取網絡上指定的數據。例如:獲取豆瓣上電影的名稱和影評,而不是獲取整張頁面中所有的數據值。

三 反爬蟲

- 門戶網站通過相應的策略和技術手段,防止爬蟲程序進行網站數據的爬取。

四 反反爬蟲

- 爬蟲程序通過相應的策略和技術手段,破解門戶網站的反爬蟲手段,從而爬取到相應的數據。

五 HTTP協議

1 概念

HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用於從萬維網(WWW:World Wide Web )服務器傳輸超文本到本地瀏覽器的傳送協議。

2 特點

  • HTTP基於TCP/IP協議:http協議是基於TCP/IP協議之上的應用層協議。
  • HTTP是無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,並收到客戶的應答後,即斷開連接。采用這種方式可以節省傳輸時間。
  • HTTP是基於請求-響應模式:HTTP協議規定,請求從客戶端發出,最後服務器端響應該請求並 返回。
  • HTTP是無狀態保存:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快。

3 HTTP之URL

HTTP使用統一資源標識符(Uniform Resource Identifiers, URI)來傳輸數據和建立連接。URL是一種特殊類型的URI,包含了用於查找某個資源的足夠的信息。

例子解析:http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name

  • 協議部分:該URL的協議部分為“http:”;
  • 域名部分:該URL的域名部分為“www.aspxfans.com”;
  • 端口部分:跟在域名後面的是端口,域名和端口之間使用“:”作為分隔符;
  • 虛擬目錄部分:從域名後的第一個“/”開始到最後一個“/”為止,是虛擬目錄部分。虛擬目錄也不是一個URL必須的部分。本例中的虛擬目錄是“/news/”
  • 文件名部分:從域名後的最後一個“/”開始到“?”為止,是文件名部分,如果沒有“?”,則是從域名後的最後一個“/”開始到“#”為止,是文件部分,如果沒有“?”和“#”,那麽從域名後的最後一個“/”開始到結束,都是文件名部分。本例中的文件名是“index.asp”。文件名部分也不是一個URL必須的部分,如果省略該部分,則使用默認的文件名。
  • 錨部分:從“#”開始到最後,都是錨部分。本例中的錨部分是“name”。錨部分也不是一個URL必須的部分。
  • 參數部分:從“?”開始到“#”為止之間的部分為參數部分,又稱搜索部分、查詢部分。本例中的參數部分為“boardID=5&ID=24618&page=1”。參數可以允許有多個參數,參數與參數之間用“&”作為分隔符。

4.HTTP之Request

技術分享圖片

常見的請求頭(報文體):

  • accept:瀏覽器通過這個頭告訴服務器,他支持的數據類;
  • Accept-Charset:瀏覽器通過這個告訴服務器,他鎖支持的字符集;
  • Accept-Encoding:瀏覽器通過這個告訴服務器,他支持的壓縮格式;
  • Accept-Language:瀏覽器通過這個告訴服務器,他的預言環境;
  • Host:瀏覽器通過這個告訴服務器,像訪問那臺主機;
  • If-Modified-Since:瀏覽器通過這個頭告訴服務器,緩存數據的時間;
  • Referer:瀏覽器通過這個頭告訴服務器,客戶機是從哪個頁面來的(防盜鏈);
  • Connection:瀏覽器通過這個頭告訴服務器,請求完後是斷開連接還是維持連接;
  • X-Requested-With:XMLHttpResquest 代表通過ajax方式進行訪問的;
  • User-Agent:請求載體的身份標識。

5 HTTP之Response

技術分享圖片

常見的響應頭信息:

  • Location:服務器通過這個頭,來告訴瀏覽器跳轉到哪裏;
  • Server:服務器通過這個頭,告訴路瀏覽器服務器的型號;
  • Content-Encoding:服務器通過這個頭,告訴瀏覽器數據壓縮的格式;
  • Content-Length:服務器通過這個頭,告訴瀏覽器會送數據的長度;
  • Content-Language:服務器通過這個頭,告訴瀏覽器語言環境;
  • Content-Type:服務器通過這個頭,告訴瀏覽器回送數據的類型;
  • Refresh:服務器通過這個頭,告訴瀏覽器定時刷新;
  • Content-Disposition:服務器通過這個頭,告訴瀏覽器以下載方式打開數據;
  • Transfer-Encoding:服務器通過這個頭,告訴瀏覽器數據是以塊方式回送的;
  • Expires:-1 控制瀏覽器不要緩存;
  • Cache-Control:no-cache
  • Pragma: no-cache

響應狀態碼

技術分享圖片

六 HTTPS協議

HTTPS (Secure Hypertext Transfer Protocol)安全超文本傳輸協議,HTTPS是在HTTP上建立SSL加密層,並對傳輸數據進行加密,是HTTP協議的安全版。

技術分享圖片

七 爬蟲基本流程

技術分享圖片

好文推薦

Python網絡爬蟲第一彈《Python網絡爬蟲相關基礎概念》

Python網絡爬蟲第二彈《http和https協議》

Django系列之web應用與http協議

爬蟲基礎知識大全