Python爬蟲學習:1、相關概念與基礎知識

爬蟲:html

網絡爬蟲是一個自動提取網頁的程序,它爲搜索引擎從萬維網上下載網頁,是搜索引擎的重要組成。傳統爬蟲從一個或若干初始網頁的URL開始,得到初始網頁上的URL,在抓取網頁的過程當中,不斷從當前頁面上抽取新的URL放入隊列,直到知足系統的必定中止條件。python

聚焦爬蟲的工做流程較爲複雜,須要根據必定的網頁分析算法過濾與主題無關的連接,保留有用的連接並將其放入等待抓取的URL隊列。而後,它將根據必定的搜索策略從隊列中選擇下一步要抓取的網頁URL,並重覆上述過程,直到達到系統的某一條件時中止。正則表達式

另外,全部被爬蟲抓取的網頁將會被系統存貯,進行必定的分析、過濾,並創建索引,以便以後的查詢和檢索;對於聚焦爬蟲來講,這一過程所獲得的分析結果還可能對之後的抓取過程給出反饋和指導。 算法

聚焦爬蟲還須要解決三個主要問題:
(1) 對抓取目標的描述或定義;
(2) 對網頁或數據的分析與過濾;
(3) 對URL的搜索策略。
 
抓取網頁的過程:
抓取網頁的過程其實和咱們平時用瀏覽器打開網頁連接差很少,只是平時咱們所用的瀏覽器會自動將抓取的HTML代碼轉化爲咱們容易理解的內容。打開瀏覽器,按下的電腦的F12鍵,就能夠查看該網頁的HTML代碼。
 
什麼是URI
Web上可用的每種資源 - HTML文檔、圖像、視頻片斷、程序等,由一個經過通 用資源標誌符(Universal Resource Identifier, 簡稱"URI")進行定位。
什麼是URL:
URL是Uniform Resource Location的縮寫,譯爲「統一資源定位符」。通俗地說,URL是Internet上用來描述信息資源的字符串,採用URL能夠用一種統一的格式來描述各類信息資源,包括文件、服務器的地址和目錄等。
 
URI與URL的區別是:URI 和 URL 都定義了 what the resource is。URL 還定義了 how to get the resource。
基本URL包含模式(或稱協議)服務器名稱(或IP地址)路徑和文件名,如「協議://受權/路徑?查詢」。完整的、帶有受權部分的普通統一資源標誌符語法看上去以下:協議://用戶名:密碼@子域名.域名.頂級域名:端口號/目錄/文件名.文件後綴?參數=值#標誌
 
Python爬蟲過程當中經常使用的相關包:
urllib:urllib提供的功能就是利用程序去執行各類HTTP請求。
urllib2:urllib2是python的一個獲取url(Uniform ResourceLocators,統一資源定址器)的模塊。它用urlopen函數的形式提供了一個很是簡潔的接口。這使得用各類各樣的協議獲取url成爲可能。它同時也提供了一個稍微複雜的接口來處理常見的情況-如基本的認證,cookies,代理,等等。這些都是由叫作opener和handler的對象來處理的。
re:正則表達式模塊,指定一個與之匹配的字符集合,該模塊所提供的函數,能夠用來檢查所給的字符串是否與指定的正則表達式匹配。
Beautiful Soup: Beautiful Soup提供一些簡單的、python式的函數用來處理導航、搜索、修改分析樹等功能。它是一個工具箱,經過解析文檔爲用戶提供須要抓取的數據,由於簡單,因此不須要多少代碼就能夠寫出一個完整的應用程序。Beautiful Soup自動將輸入文檔轉換爲Unicode編碼,輸出文檔轉換爲utf-8編碼。你不須要考慮編碼方式,除非文檔沒有指定一個編碼方式,這時,Beautiful Soup就不能自動識別編碼方式了。而後,你僅僅須要說明一下原始編碼方式就能夠了。Beautiful Soup已成爲和lxml、html6lib同樣出色的python解釋器,爲用戶靈活地提供不一樣的解析策略或強勁的速度。
requests: requests是python的一個HTTP客戶端庫,跟urllib,urllib2相似,那爲何有時候會用requests而不用urllib2呢?官方文檔中是這樣說明的:python的標準庫urllib2提供了大部分須要的HTTP功能,但在實現某些簡單的功能中,不如requests簡單。
 
#因爲本人能力有限,描述不恰當之處,還望各位朋友多多指正,轉載時請註明原做者出處^_^。
相關文章
相關標籤/搜索