你們好哈,最近博主在學習Python,學習期間也遇到一些問題,得到了一些經驗,在此將本身的學習系統地整理下來,若是你們有興趣學習爬蟲的話,能夠將這些文章做爲參考,也歡迎你們一共分享學習經驗。python
Python版本:2.7,Python 3請另尋其餘博文。正則表達式
首先爬蟲是什麼?shell
網絡爬蟲(又被稱爲網頁蜘蛛,網絡機器人,在FOAF社區中間,更常常的稱爲網頁追逐者),是一種按照必定的規則,自動的抓取信息的程序或者腳本。後端
根據個人經驗,要學習Python爬蟲,咱們要學習的共有如下幾點:瀏覽器
首先,咱們要用Python寫爬蟲,確定要了解Python的基礎吧,萬丈高樓平地起,不能忘啦那地基,哈哈,那麼我就分享一下本身曾經看過的一些Python教程,小夥伴們能夠做爲參考。緩存
曾經有一些基礎的語法是在慕課網上看的,上面附有一些練習,學習完以後能夠做爲練習,感受效果仍是蠻不錯的,不過稍微遺憾的是內容基本上都是最基礎的,入門開始的話,就這個吧服務器
學習網址:慕課網Python教程cookie
後來,我發現了廖老師的Python教程,講的那是很是通俗易懂哪,感受也是很是不錯,你們若是想進一步瞭解Python就看一下這個吧。網絡
還有一個我看過的,簡明Python教程,感受講的也不錯session
urllib和urllib2庫是學習Python爬蟲最基本的庫,利用這個庫咱們能夠獲得網頁的內容,並對內容用正則表達式提取分析,獲得咱們想要的結果。這個在學習過程當中我會和你們分享的。
Python正則表達式是一種用來匹配字符串的強有力的武器。它的設計思想是用一種描述性的語言來給字符串定義一個規則,凡是符合規則的字符串,咱們就認爲它「匹配」了,不然,該字符串就是不合法的。這個在後面的博文會分享的。 廈門叉車
若是你是一個Python高手,基本的爬蟲知識都已經掌握了,那麼就尋覓一下Python框架吧,我選擇的框架是Scrapy框架。這個框架有什麼強大的功能呢?下面是它的官方介紹:
HTML, XML源數據 選擇及提取 的內置支持
提供了一系列在spider之間共享的可複用的過濾器(即 Item Loaders),對智能處理爬取數據提供了內置支持。
經過 feed導出 提供了多格式(JSON、CSV、XML),多後端(FTP、S三、本地)的內置支持
提供了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解析器
官方文檔:http://doc.scrapy.org/en/latest/
等咱們掌握了基礎的知識,再用這個 Scrapy 框架吧!
扯了這麼多,好像沒多少有用的東西額,那就不扯啦!
爬蟲,即網絡爬蟲,你們能夠理解爲在網絡上爬行的一直蜘蛛,互聯網就比做一張大網,而爬蟲即是在這張網上爬來爬去的蜘蛛咯,若是它遇到資源,那麼它就會抓取下來。想抓取什麼?這個由你來控制它咯。
好比它在抓取一個網頁,在這個網中他發現了一條道路,其實就是指向網頁的超連接,那麼它就能夠爬到另外一張網上來獲取數據。這樣,整個連在一塊兒的大網對這之蜘蛛來講觸手可及,分分鐘爬下來不是事兒。
在用戶瀏覽網頁的過程當中,咱們可能會看到許多好看的圖片,好比 http://image.baidu.com/ ,咱們會看到幾張的圖片以及百度搜索框,這個過程其實就是用戶輸入網址以後,通過DNS,找到服務器主機,向服務器發出一個請求,服務器通過解析以後,發送給用戶的瀏覽器 HTML、JS、CSS 等文件,瀏覽器解析出來,用戶即可以看到形形色色的圖片了。
所以,用戶看到的網頁實質是由 HTML 代碼構成的,爬蟲爬來的即是這些內容,經過分析和過濾這些 HTML 代碼,實現對圖片、文字等資源的獲取。
URL,即統一資源定位符,也就是咱們說的網址,統一資源定位符是對能夠從互聯網上獲得的資源的位置和訪問方法的一種簡潔的表示,是互聯網上標準資源的地址。互聯網上的每一個文件都有一個惟一的URL,它包含的信息指出文件的位置以及瀏覽器應該怎麼處理它。
URL的格式由三部分組成:
①第一部分是協議(或稱爲服務方式)。
②第二部分是存有該資源的主機IP地址(有時也包括端口號)。
③第三部分是資源的具體地址,如目錄和文件名等。
爬蟲爬取數據時必需要有一個目標的URL才能夠獲取數據,所以,它是爬蟲獲取數據的基本依據,準確理解它的含義對爬蟲學習有很大幫助。
學習Python,固然少不了環境的配置,最初我用的是Notepad++,不過發現它的提示功能實在是太弱了,因而,在Windows下我用了 PyCharm,在Linux下我用了Eclipse for Python,另外還有幾款比較優秀的IDE,你們能夠參考這篇文章 學習Python推薦的IDE 。好的是前進的,但願你們能夠找到適合本身的IDE