Python爬蟲筆記(一)
阿新 • • 發佈:2019-01-10
目錄
Python爬蟲筆記
一、爬蟲簡介
1、爬蟲是什麼?
爬蟲:一段自動抓取網際網路資訊的程式。
如圖:
如圖所示,爬蟲就是從網際網路中的一個URL出發,訪問它所能達到的所有URL,並且獲取到需要的價值資料;
2、爬蟲的技術價值
價值:網際網路資料,為我所用;
例如:
二、簡單的爬蟲架構
1、簡單爬蟲架構
如圖:
在這個簡單的爬蟲框架中,我們可以看到三個主要的組成部分,其中URL管理器負責管理需要去訪問的URL;網頁下載器負責下載正在訪問的頁面的html資料;網頁解析器負責解析html中的資料資訊,同時將需要用到的URL傳送給URL管理器;這樣一來,三者形成了一個迴圈,這個迴圈可以幫助我們訪問網際網路。
2、簡單爬蟲的執行流程
三、爬蟲架構分析
1、URL管理器
URL管理器:管理待抓取URL的集合和已抓取URL的集合;
這樣做的目的是:
- 防止重複抓取、防止迴圈抓取
URL管理器的主要流程為:
- 在新增新的URL到待爬取集合中之前,判斷待新增的URL是否在容器中;
- 在獲取帶爬取URL之前,判斷是否還有待爬取URL;
- 在爬取到該URL之後,將該URL從待爬取移動到已爬取;
具體實現方式目前有三種方式:
這三種方式都是為了防止在儲存URL時出現URL重複的錯誤;
2、網頁下載器
網頁下載器:將網際網路上的URL對應的網頁下載到本地的工具;(可以說網頁下載器是爬蟲的核心)
python支援的網頁下載器有urllib2;
使用urllib2下載網頁有三種方法:
第一種最為簡潔:
第二種方法相比第一種,多了兩個引數,分別是data和http header:
第三種方法相比於前兩種方法,可以新增特殊場景的處理器;
3、網頁解析器
網頁解析器:從網頁中提取出有價值資料的一種工具;
python中的網頁解析器有以下幾種:
- 模糊匹配:正則表示式
- 結構化解析:html.parser,Beautifer soup,lxml等