1. 程式人生 > >學習爬蟲總結(一)

學習爬蟲總結(一)

      作為一名大三狗,以前的兩年似乎也沒有堅持學習什麼。現在我決定我要每天堅持學一點東西,來提升自己。爬蟲這個名詞第一次出現在我的印象中是學習中國大學MOOC裡面的python語言程式設計慕課,那時候我對爬蟲並不瞭解,也沒有學習的興趣。最近在看一些有關資訊保安的書,發現網上的資料對我們來說很重要,於是對爬蟲產生了一定的興趣。希望我可以一直堅持下去。

       網路爬蟲(又被稱為網頁蜘蛛,網路機器人,在FOAF社群中間,更經常的稱為網頁追逐者),是一種按照一定的規則,自動地抓取全球資訊網資訊的程式或者指令碼。通俗一點說就是爬取某個網站上的你想要的某些資料,然後儲存起來。

      爬蟲主要使用的是java和python語言,java語言是Python語言寫爬蟲的最大競爭對手。Python與java相比有很多優點,利用python寫爬蟲程式比較簡潔,高效。python含有第三方urllib庫,一個最基本的網路請求庫,是用來寫爬蟲的好工具。學習用Python語言爬蟲必須要對python的基本語法規則要有一定的瞭解。我在大一寒假的時候學習過python語言的一些基本語法知識,當時還照著書做過一個用python語言寫的遊戲。差不多都一年半沒碰過python語言,我在圖書館找了一本《一天學會python》的書,用了兩個多小時看完了,對Python語言的一些基本語法規則及使用更加熟悉了。然後我就開始了我的爬蟲之旅。

開始爬蟲之前有些基礎知識必須知道,這些知識是爬蟲必須知道的基礎知識:

1、http協議:超文字傳輸協議,一種釋出和接收HTML頁面的方法,80埠,瀏覽器一般預設的都是80埠

2、https協議:http協議的加密版本,在http下加入ssl層,443埠

3、URL詳解:統一資源定位符(就是瀏覽器上方的網址)一個URL一般由以下幾個部分組成:

scheme://host:port/path/?query-sting=xxx#anchor

scheme:協議一般為http、https、ftp

host:主機名或者域名例如www.baidu.com或者IP地址,域名是IP地址的簡稱

port:埠號,瀏覽器一般預設80埠

path:查詢路徑

query-sting=xxx:查詢字串例如wd=python

anchor:錨點,前端用來做頁面定位

在瀏覽器中請求一個URL,瀏覽器會對URL進行一個編碼,除英文,數字和部分符號外,其他的全部使用百分號+十六進位制碼值進行編碼。在urllib庫裡面有urlencode()函式對中文,符號進行編碼,parse_qs()函式對中文、符號進行解碼。

4、http常用請求方法:

post:向伺服器傳送資料、上傳資料,對伺服器產生影響

get:只能從伺服器獲取資料,不會對伺服器產生影響

5、http協議常見響應狀態碼

200: 請求正常,伺服器正常返回(資料不一定正確)

301:永久重定向

302:臨時重定向

400:請求的URL找不到,URL錯誤

403:伺服器拒絕訪問

404:not found

500:內部伺服器錯誤

6、http協議請求頭常見引數

在http協議中向伺服器傳送一個請求資料分為三部分,第一部分把資料放在url中,第二部分把資料放在body中,第三部分把資料放到head中。

user-agent:瀏覽器名稱

referer:表明當前這個請求從哪個url過來

cookie:http協議是無狀態的

7、爬蟲協議

用爬蟲爬取網站,需要聽取網站的爬蟲協議,有的可以爬,有的不能爬。在網站的域名後面加上robots.txt。如果出現404,可以隨心所欲爬取。

user-agent:* 這個欄位的意思是允許哪個引擎的爬蟲獲取資料,*代表所有型別的爬蟲都可以

disallow:/admin/ 這個欄位代表爬蟲不允許爬那個路徑下面的資料,如果是/的話,就代表所有路徑下面的資料都不能爬