什麼是爬蟲?
Python爬蟲(入門+進階) DC學院css
本節課程的內容是介紹什麼是爬蟲?爬蟲有什麼用?以及爬蟲是如何實現的?從這三點來全面剖析爬蟲這一工具。html
爬蟲的定義:
網絡爬蟲(又被稱爲網頁蜘蛛,網絡機器人,在FOAF社區中間,更常常的稱爲網頁追逐者),是一種按照必定的規則,自動地抓取萬維網信息的程序或者腳本。chrome
爬蟲有什麼用:
市場分析:電商分析、商圈分析、一二級市場分析等apache
市場監控:電商、新聞、房源監控等瀏覽器
商機發現:招投標情報發現、客戶資料發掘、企業客戶發現等緩存
認識網址的構成
一個網站的網址通常由域名+本身編寫的頁面所構成。咱們在訪問同一網站的網頁時,域名通常是不會改變的,所以咱們爬蟲所須要解析的就是網站本身所編寫的不一樣頁面的入口url,只有解析出來各個頁面的入口,咱們才能開始咱們的爬蟲。tomcat
瞭解網頁的兩種加載方法
- 同步加載:改變網址上的某些參數會致使網頁發生改變,例如:www.itjuzi.com/company?page=1(改變page=後面的數字,網頁會發生改變)
- 異步加載:改變網址上的參數不會使網頁發生改變,例如:www.lagou.com/gongsi/(翻頁後網址不會發生變化)
認識網頁源碼的構成
在網頁中右鍵點擊查看網頁源碼,能夠查看到網頁的源代碼信息。
源代碼通常由三個部分組成,分別是:服務器
- html:描述網頁的內容結構
- css:描述網頁的排版佈局
- JavaScript:描述網頁的事件處理,即鼠標或鍵盤在網頁元素上的動做後的程序
這裏給出了三者的擴展知識的連接,須要你們重點關注html的構成,而後稍微瞭解下css和JavaScript在網頁構成中的做用便可。
查看網頁請求
以chrome瀏覽器爲例,在網頁上點擊鼠標右鍵,檢查(或者直接F12),選擇network,刷新頁面,選擇ALL下面的第一個連接,這樣就能夠看到網頁的各類請求信息。網絡
請求頭(Request Headers)信息詳解:框架
Accept: text/html,image/*(瀏覽器能夠接收的類型)
Accept-
Charset: ISO-8859-1(瀏覽器能夠接收的編碼類型)
Accept-
Encoding: gzip,compress(瀏覽器能夠接收壓縮編碼類型)
Accept-
Language: en-us,zh-cn(瀏覽器能夠接收的語言和國家類型)
Host: www.it315.org:80(瀏覽器請求的主機和端口)
If-Modified-
Since: Tue, 11 Jul 2000 18:23:51 GMT(某個頁面緩存時間)
Referer: http:
User-
Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)(瀏覽器相關信息)
Cookie:(瀏覽器暫存服務器發送的信息)
Connection: close(1.0)/Keep-Alive(1.1)(HTTP請求的版本的特色)
Date: Tue, 11 Jul 2000 18:23:51 GMT(請求網站的時間)
響應頭(Response Headers)信息詳解:
Location: http:
Server:apache tomcat(服務器的類型)
Content-
Encoding: gzip(服務器發送的壓縮編碼方式)
Content-
Length: 80(服務器發送顯示的字節碼長度)
Content-
Language: zh-cn(服務器發送內容的語言和國家名)
Content-
Type: image/jpeg; charset=UTF-8(服務器發送內容的類型和編碼類型)
Last-
Modified: Tue, 11 Jul 2000 18:23:51 GMT(服務器最後一次修改的時間)
Refresh: 1;url=http:
Content-
Disposition: attachment; filename=aaa.jpg(服務器控制瀏覽器發下載方式打開文件)
Transfer-
Encoding: chunked(服務器分塊傳遞數據到客戶端)
Set-
Cookie:SS=Q0=5Lb_nQ; path=/search(服務器發送Cookie相關的信息)
Expires: -1(服務器控制瀏覽器不要緩存網頁,默認是緩存)
Cache-
Control: no-cache(服務器控制瀏覽器不要緩存網頁)
Pragma: no-cache(服務器控制瀏覽器不要緩存網頁)
Connection: close/Keep-Alive(HTTP請求的版本的特色)
Date: Tue, 11 Jul 2000 18:23:51 GMT(響應網站的時間)
理解網頁請求過程
從瀏覽器輸入網址、回車後,到用戶看到網頁內容,通過的步驟以下:
(1)dns解析,獲取ip地址;
(2)創建TCP鏈接,3次握手;
(3)發送HTTP請求報文;
(4)服務器接收請求並做處理;
(5)服務器發送HTTP響應報文;
(6)斷開TCP鏈接,4次握手。
這裏須要你們回憶起計算機網絡中學到的相關知識,主要是http請求的相關內容,重點了解下TCP三次握手的一個流程,閱讀 網頁http請求的整個過程,理解下網頁的請求過程。
通用的網絡爬蟲框架
1.挑選種子URL;
2.將這些URL放入待抓取的URL隊列;
3.取出待抓取的URL,下載並存儲進已下載網頁庫中。此外,將這些URL放入待抓取URL隊列,從而進入下一循環;
4.分析已抓取隊列中的URL,而且將URL放入待抓取URL隊列,從而進入下一循環。
擴展閱讀
利用爬蟲技術能作到哪些很酷頗有趣頗有用的事情?
有這麼一句話在業界普遍流傳:巧婦難爲無米之炊,咱們要作大數據分析,要作機器學習模型訓練,沒有海量的數據是沒法完成的。這些數據都是哪來的?其中固然有一部分是企業收集整理好的,但更多的仍是須要本身來收集。那麼這個時候就須要爬蟲登場了。所以,爬蟲在這個信息爆炸的大數據時代是一項必不可少的技能。
閱讀利用爬蟲技術能作到哪些很酷頗有趣頗有用的事情?,看看爬蟲還能幹哪些你想不到的事情。