Python 爬蟲(一)綜述

開始爬蟲之前先看看這些來打個底吧~

1.首先,什麼是爬蟲呢?

爬蟲(spider),可以理解爲在網絡上爬行的一隻蜘蛛,爬蟲在互聯網這張網上爬來爬去地找資源,如果它遇到想要的資源,就會把它抓取下來。至於什麼資源是想要的抓取的?這個由你來控制它咯。
概括來說,爬蟲就是一種按照一定的規則,自動的抓取萬維網信息的程序或者腳本。

2.瀏覽網頁的過程

在我們瀏覽網頁的時候,看到的東西是怎麼來的呢,這個過程其實是這樣的:我們輸入網址之後,經過DNS服務器,找到服務器主機,向服務器發出一個請求,服務器經過解析之後,返回給用戶 HTML、JS、CSS 等文件,瀏覽器把這些文件渲染解析出來,我們就可以看到形形色色的網頁內容了。
因此,我們看到的網頁實質是由 HTML 代碼構成的,爬蟲爬來的便是這些內容了,通過分析和過濾這些 HTML 代碼,實現對圖片、文字等資源的獲取。(這樣想來是不是也很簡單,也就是獲取網頁源碼再進行分析過濾得到想要的內容就好了。)

3.URL的含義

URL,即統一資源定位符,也就是我們說的網址,URL是對可以從互聯網上得到的資源的位置和訪問方法的一種簡潔的表示,是互聯網上標準資源的地址。互聯網上的每個文件都有一個唯一的URL,它包含的信息指出文件的位置以及瀏覽器應該怎麼處理它。

URL的格式由三部分組成:
①第一部分是協議(或稱爲服務方式)。
②第二部分是存有該資源的主機IP地址(有時也包括端口號)。
③第三部分是主機資源的具體地址,如目錄和文件名等。

爬蟲爬取數據時必須要有一個目標的URL纔可以獲取數據,因此,URL是爬蟲獲取數據的基本依據,準確理解它的含義對爬蟲學習有很大的幫助。

4 環境的配置

恩,我是在Windows下用的 PyCharm。

5.Python urllib和urllib2 庫的用法

urllib和urllib2庫是學習Python爬蟲最基本的庫,利用這個庫我們可以得到網頁的內容,並對內容用正則表達式提取分析,得到我們想要的結果。

6.Python 正則表達式

Python正則表達式是一種用來匹配字符串的強有力的武器。它的設計思想是用一種描述性的語言來給字符串定義一個規則,凡是符合規則的字符串,我們就認爲它“匹配”了,否則,該字符串就是不合法的。

7.爬蟲框架

如果基本的爬蟲知識都已經掌握了,那就來用一下Python框架吧。我用的是Scrapy框架。這個框架有什麼強大的功能呢?下面是它的官方介紹:

HTML, XML源數據 選擇及提取 的內置支持
提供了一系列在spider之間共享的可複用的過濾器(即 Item Loaders),對智能處理爬取數據提供了內置支持。
通過 feed導出 提供了多格式(JSON、CSV、XML),多存儲後端(FTP、S3、本地文件系統)的內置支持
提供了media pipeline,可以 自動下載 爬取到的數據中的圖片(或者其他資源)。
高擴展性。您可以通過使用 signals ,設計好的API(中間件, extensions, pipelines)來定製實現您的功能。
內置的中間件及擴展爲下列功能提供了支持:
cookies and session 處理
HTTP 壓縮
HTTP 認證
HTTP 緩存
user-agent模擬
robots.txt
爬取深度限制
針對非英語語系中不標準或者錯誤的編碼聲明, 提供了自動檢測以及健壯的編碼支持。
支持根據模板生成爬蟲。在加速爬蟲創建的同時,保持在大型項目中的代碼更爲一致。詳細內容請參閱 genspider 命令。
針對多爬蟲下性能評估、失敗檢測,提供了可擴展的 狀態收集工具 。
提供 交互式shell終端 , 爲您測試XPath表達式,編寫和調試爬蟲提供了極大的方便
提供 System service, 簡化在生產環境的部署及運行
內置 Web service, 使您可以監視及控制您的機器
內置 Telnet終端 ,通過在Scrapy進程中鉤入Python終端,使您可以查看並且調試爬蟲
Logging 爲您在爬取過程中捕捉錯誤提供了方便
支持 Sitemaps 爬取
具有緩存的DNS解析器

———扯了這麼多,下節再進入正題好了~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章