java 爬虫框架_不知道Python爬虫?这篇文章丢给他(内含框架结构)
前言
爬蟲即網絡爬蟲,英文是Web Spider。翻譯過來就是網絡上爬行的蜘蛛,如果把互聯網看作一張大網,那么爬蟲就是在大網上爬來爬去的蜘蛛,碰到想要的食物,就把他抓取出來。
我們在瀏覽器中輸入一個網址,敲擊回車,看到網站的頁面信息。這就是瀏覽器請求了網站的服務器,獲取到網絡資源。那么,爬蟲也相當于模擬瀏覽器發送請求,獲得到HTML代碼。HTML代碼里通常包含了標簽和文字信息,我們就從中提取到我們想要的信息。
通常爬蟲是從某個網站的某個頁面開始,爬取這個頁面的內容,找到網頁中的其他鏈接地址,然后從這個地址爬到下一個頁面,這樣一直不停的爬下去,進去批量的抓取信息。那么,我們可以看出網絡爬蟲就是一個不停爬取網頁抓取信息的程序。
爬蟲的基本流程
- 發起請求
- 獲取相應內容
- 解析內容
- 保存數據
爬蟲的用途
- 搜索引擎
- 采集數據
- 廣告過濾
- 用于數據分析
python爬蟲架構組成
- URL管理器:管理待爬取的url集合和已爬取的url集合,傳送待爬取的url給網頁下載器;
- 網頁下載器:爬取url對應的網頁,存儲成字符串,傳送給網頁解析器;
- 網頁解析器:解析出有價值的數據,存儲下來,同時補充url到URL管理器。
Python爬蟲工作原理
Python爬蟲通過URL管理器,判斷是否有待爬URL,如果有待爬URL,通過調度器進行傳遞給下載器,下載URL內容,并通過調度器傳送給解析器,解析URL內容,并將價值數據和新URL列表通過調度器傳遞給應用程序,并輸出價值信息的過程。
Python爬蟲常用框架有:
- grab:網絡爬蟲框架(基于pycurl/multicur);
- scrapy:網絡爬蟲框架(基于twisted),不支持Python3;
- pyspider:一個強大的爬蟲系統;
- cola:一個分布式爬蟲框架;
- portia:基于Scrapy的可視化爬蟲;
- restkit:Python的HTTP資源工具包。它可以讓你輕松地訪問HTTP資源,并圍繞它建立的對象;
- demiurge:基于PyQuery的爬蟲微框架。
Python爬蟲應用領域廣泛,在網絡爬蟲領域處于霸主位置,Scrapy、Request、BeautifuSoap、urlib等框架的應用,可以實現爬行自如的功能,只要您數據抓取想法,Python爬蟲均可實現!
十個Python爬蟲框架
Scrapy:
Scrapy是一個為了爬取網站數據,提取結構性數據而編寫的應用框架。 可以應用在包括數據挖掘,信息處理或存儲歷史數據等一系列的程序中。它是很強大的爬蟲框架,可以滿足簡單的頁面爬取,比如可以明確獲知url pattern的情況。用這個框架可以輕松爬下來如亞馬遜商品信息之類的數據。但是對于稍微復雜一點的頁面,如weibo的頁面信息,這個框架就滿足不了需求了。它的特性有:HTML, XML源數據 選擇及提取 的內置支持;提供了一系列在spider之間共享的可復用的過濾器(即 Item Loaders),對智能處理爬取數據提供了內置支持。
Crawley:
高速爬取對應網站的內容,支持關系和非關系數據庫,數據可以導出為JSON、XML等。
Portia:
是一個開源可視化爬蟲工具,可讓使用者在不需要任何編程知識的情況下爬取網站!簡單地注釋自己感興趣的頁面,Portia將創建一個蜘蛛來從類似的頁面提取數據。簡單來講,它是基于scrapy內核;可視化爬取內容,不需要任何開發專業知識;動態匹配相同模板的內容。
newspaper:
可以用來提取新聞、文章和內容分析。使用多線程,支持10多種語言等。作者從requests庫的簡潔與強大得到靈感,使用Python開發的可用于提取文章內容的程序。支持10多種語言并且所有的都是unicode編碼。
Python-goose:
Java寫的文章提取工具。Python-goose框架可提取的信息包括:文章主體內容、文章主要圖片、文章中嵌入的任何Youtube/Vimeo視頻、元描述、元標簽。
Beautiful Soup:
名氣大,整合了一些常用爬蟲需求。它是一個可以從HTML或XML文件中提取數據的Python庫。它能夠通過你喜歡的轉換器實現慣用的文檔導航,查找,修改文檔的方式.Beautiful Soup會幫你節省數小時甚至數天的工作時間。Beautiful Soup的缺點是不能加載JS。
mechanize:
它的優點是可以加載JS。當然它也有缺點,比如文檔嚴重缺失。不過通過官方的example以及人肉嘗試的方法,還是勉強能用的。
selenium:
這是一個調用瀏覽器的driver,通過這個庫你可以直接調用瀏覽器完成某些操作,比如輸入驗證碼。Selenium是自動化測試工具,它支持各種瀏覽器,包括 Chrome,Safari,Firefox等主流界面式瀏覽器,如果在這些瀏覽器里面安裝一個 Selenium 的插件,可以方便地實現Web界面的測試. Selenium支持瀏覽器驅動。Selenium支持多種語言開發,比如 Java,C,Ruby等等,PhantomJS 用來渲染解析JS,Selenium 用來驅動以及與Python的對接,Python進行后期的處理。
cola:
是一個分布式的爬蟲框架,對于用戶來說,只需編寫幾個特定的函數,而無需關注分布式運行的細節。任務會自動分配到多臺機器上,整個過程對用戶是透明的。項目整體設計有點糟,模塊間耦合度較高。
PySpider:
一個國人編寫的強大的網絡爬蟲系統并帶有強大的WebUI。采用Python語言編寫,分布式架構,支持多種數據庫后端,強大的WebUI支持腳本編輯器,任務監視器,項目管理器以及結果查看器。Python腳本控制,可以用任何你喜歡的html解析包。
點擊右上角關注小編將會持續為您帶來相關資訊(您的關注就是小編最大的動力!)
總結
以上是生活随笔為你收集整理的java 爬虫框架_不知道Python爬虫?这篇文章丢给他(内含框架结构)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python函数的使用场景_Python
- 下一篇: python3编码命名规范_Python