『壹』 為什麼常用Python,java做爬蟲,而不是C#C++等
我用c#,java都寫過爬蟲。區別不大,原理就是利用好正則表達式。只不過是平台問題。後來了解到很多爬蟲都是用python寫的。因為目前對python並不熟,所以也不知道這是為什麼。網路了下結果:
1)抓取網頁本身的介面
相比與其他靜態編程語言,如java,c#,C++,python抓取網頁文檔的介面更簡潔;相比其他動態腳本語言,如perl,shell,python的urllib2包提供了較為完整的訪問網頁文檔的API。(當然ruby也是很好的選擇)
此外,抓取網頁有時候需要模擬瀏覽器的行為,很多網站對於生硬的爬蟲抓取都是封殺的。這是我們需要模擬useragent的行為構造合適的請求,譬如模擬用戶登陸、模擬session/cookie的存儲和設置。在python里都有非常優秀的第三方包幫你搞定,如Requests,mechanize
2)網頁抓取後的處理
抓取的網頁通常需要處理,比如過濾html標簽,提取文本等。python的beautifulsoap提供了簡潔的文檔處理功能,能用極短的代碼完成大部分文檔的處理。
其實以上功能很多語言和工具都能做,但是用python能夠幹得最快,最干凈。Lifeisshort,uneedpython.
Python爬蟲基礎視頻
沖最後一句『Lifeisshort,uneedpython』,立馬在當當上買了本python的書!以前就膜拜過python大牛,一直想學都扯於各種借口遲遲沒有開始。。
py用在linux上很強大,語言挺簡單的。
NO.1快速開發(唯一能和python比開發效率的語言只有rudy)語言簡潔,沒那麼多技巧,所以讀起來很清楚容易。
NO.2跨平台(由於python的開源,他比java更能體現"一次編寫到處運行"
NO.3解釋性(無須編譯,直接運行/調試代碼)
NO.4構架選擇太多(GUI構架方面主要的就有wxPython,tkInter,PyGtk,PyQt。
『貳』 java和python哪個適合寫爬蟲
python相對比較適合寫爬蟲,因為它很多都是寫好的函數,直接調用即可。
『叄』 java和Python哪個適合寫爬蟲
當然是Python,一般我們都口語化說Python爬蟲,爬蟲工程師都是用python語言。
Python獨特的優勢是寫爬蟲的關鍵。1)跨平台,對Linux和windows都有不錯的支持;2)科學計算、數值擬合:Numpy、Scipy;3)可視化:2d:Matplotlib, 3d: Mayavi2;4)復雜網路:Networkx、scrapy爬蟲;5)互動式終端、網站的快速開發。
用Python爬取信息的方法有三種:
1、正則表達式。實現步驟分為五步:1)在tomcat伺服器端部署一個html網頁;2)使用URL與網頁建立聯系;3)獲取輸入流,用於讀取網頁中的內容;4)建立正則規則;5)將提取到的數據放到集合中。
2、BeautifulSoup。
Beautiful Soup支持各種html解析器,包括python自帶的標准庫,還有其他的許多第三方庫模塊。其中一個是lxml parser。藉助網頁的結構和屬性等特性來解析網頁的工具,有了它我們不用再去寫一些復雜的正則,只需要簡單的幾條語句就可以完成網頁中某個元素的提取。
3、Lxml。Lxml是Python的一個解析庫,支持HTML和XML的解析,支持xpath解析方式,而且解析效率非常高。Lxml主要解決三個問題:1)有一個XML文件,如何解析;2)解析後,如果查找、定位某個標簽;3)定位後如何操作標簽,比如訪問屬性、文本內容等。
當網頁結構簡單並且想要避免額外依賴(不需要安裝庫),使用正則表達式更為合適。當需要爬取數據量較少時,使用較慢的BeautifulSoup也可以的。當數據量大時,需要追求效益時,Lxml時最好選擇。
爬蟲是一個比較容易上手的技術,也許你看一篇文檔就能爬取單個網頁上的數據。但對於大規模爬蟲,並不是1*n這么簡單,因此很多企業都在高薪招聘Python精英人才。
『肆』 java和python在爬蟲方面的優勢和劣勢是什麼
爬蟲,其實網路爬蟲(Webcrawler)的一種簡寫,爬蟲就是預先制定的規則,自動地抓取萬維網網頁頁面信息的程序或者腳本,它們被廣泛用於互聯網搜索引擎或其他類似網站,可以自動採集所有其能夠訪問到的頁面內容,以獲取或更新這些網站的內容和檢索方式。從功能上來講,爬蟲一般分為數據採集,處理,儲存三個部分。
在爬蟲技術開發方面,爬蟲分為三類爬蟲:
(1)分布式爬蟲:Nutch
(2)JAVA爬蟲:Crawler4j、WebMagic、WebCollector
(3)非JAVA爬蟲:scrapy(基於Python語言開發)
分布式爬蟲一般應用於大量數據兄游賀爬取,用於爬取海量URL的場景。
java爬蟲是發展的最為完善的一種爬蟲。由於java語言的健壯性和整個生態的原因,java爬蟲發展出了一整台爬蟲的機制,不管是類庫、開發、調試,整個過程都是十分規范和簡單的。並且有很多開源項目可以參考和使用羨派,社區非常活躍和完善。能夠適用於很多企業開發應用場景。
Python爬蟲,python可以用30行代碼,完成JAVA50行代碼乾的任務。python寫代碼的確快,但是在調試代碼的階段,python代碼的調試往往會耗費遠遠多於編碼階段省下的時間。使用python開發,要保證程序的正確性和穩定性,就需要寫更多的測試模塊。當然如果爬取規模不大、爬取業務不復雜,使用python這種爬蟲也是蠻不錯的,可以輕松完成爬取任務。
所以,如果提問者需要學習爬蟲,可以先考慮下自己學爬蟲的目的是什麼比較好,根據你的目的去進行磨棚技術選型才是最省力的一種,不過一般作為個人開發者的話,Python還是最實用的。
『伍』 爬蟲為什麼不用java要用 Python
這個問題蠻有意思的。
簡單的發表一些個人 淺見哈。
1、Java實現網路爬蟲的代碼要比Python多很多,而且實現相對復雜一些。
2、Java對於爬蟲的相關庫也有,但是沒有Python那麼多。
不過就爬蟲的效果來看,Java和Python都能做到,只不過工程量不同,實現的方式也有所差異。
更多的優劣期待大佬們不吝賜教。
推薦教程: 《Python教程》以上就是小編分享的關於爬蟲為什麼不用java要用 Python的詳細內容希望對大家有所幫助,更多有關python教程請關注環球青藤其它相關文章!
『陸』 Python中的爬蟲框架有哪些呢
實現爬蟲技術的編程環境有很多種,Java、Python、C++等都可以用來爬蟲。但很多人選擇Python來寫爬蟲,為什麼呢?因為Python確實很適合做爬蟲,豐富的第三方庫十分強大,簡單幾行代碼便可實現你想要的功能。更重要的,Python也是數據挖掘和分析的好能手。那麼,Python爬蟲一般用什麼框架比較好?
一般來講,只有在遇到比較大型的需求時,才會使用Python爬蟲框架。這樣的做的主要目的,是為了方便管理以及擴展。本文我將向大家推薦十個Python爬蟲框架。
1、Scrapy:Scrapy是一個為了爬取網站數據,提取結構性數據而編寫的應用框架。 可以應用在包括數據挖掘,信息處理或存儲歷史數據等一系列的程序中。它是很強大的爬蟲框架,可以滿足簡單的頁面爬取,比如可以明確獲知url pattern的情況。用這個框架可以輕松爬下來如亞馬遜商品信息之類的數據。但是對於稍微復雜一點的頁面,如weibo的頁面信息,這個框架就滿足不了需求了。它的特性有:HTML, XML源數據 選擇及提取 的內置支持;提供了一系列在spider之間共享的可復用的過濾器(即 Item Loaders),對智能處理爬取數據提供了內置支持。
2、Crawley:高速爬取對應網站的內容,支持關系和非關系資料庫,數據可以導出為jsON、XML等。
3、Portia:是一個開源可視化爬蟲工具,可讓使用者在不需要任何編程知識的情況下爬取網站!簡單地注釋自己感興趣的頁面,Portia將創建一個蜘蛛來從類似的頁面提取數據。簡單來講,它是基於scrapy內核;可視化爬取內容,不需要任何開發專業知識;動態匹配相同模板的內容。
4、newspaper:可以用來提取新聞、文章和內容分析。使用多線程,支持10多種語言等。作者從requests庫的簡潔與強大得到靈感,使用Python開發的可用於提取文章內容的程序。支持10多種語言並且所有的都是unicode編碼。
5、Python-goose:Java寫的文章提取工具。Python-goose框架可提取的信息包括:文章主體內容、文章主要圖片、文章中嵌入的任何Youtube/Vimeo視頻、元描述、元標簽。
6、Beautiful Soup:名氣大,整合了一些常用爬蟲需求。它是一個可以從HTML或XML文件中提取數據的Python庫。它能夠通過你喜歡的轉換器實現慣用的文檔導航,查找,修改文檔的方式.Beautiful Soup會幫你節省數小時甚至數天的工作時間。Beautiful Soup的缺點是不能載入JS。
7、mechanize:它的優點是可以載入JS。當然它也有缺點,比如文檔嚴重缺失。不過通過官方的example以及人肉嘗試的方法,還是勉強能用的。
8、selenium:這是一個調用瀏覽器的driver,通過這個庫你可以直接調用瀏覽器完成某些操作,比如輸入驗證碼。Selenium是自動化測試工具,它支持各種瀏覽器,包括 Chrome,Safari,Firefox等主流界面式瀏覽器,如果在這些瀏覽器裡面安裝一個 Selenium 的插件,可以方便地實現Web界面的測試. Selenium支持瀏覽器驅動。Selenium支持多種語言開發,比如 Java,C,Ruby等等,PhantomJS 用來渲染解析JS,Selenium 用來驅動以及與Python的對接,Python進行後期的處理。
9、cola:是一個分布式的爬蟲框架,對於用戶來說,只需編寫幾個特定的函數,而無需關注分布式運行的細節。任務會自動分配到多台機器上,整個過程對用戶是透明的。項目整體設計有點糟,模塊間耦合度較高。
10、PySpider:一個國人編寫的強大的網路爬蟲系統並帶有強大的WebUI。採用Python語言編寫,分布式架構,支持多種資料庫後端,強大的WebUI支持腳本編輯器,任務監視器,項目管理器以及結果查看器。Python腳本控制,可以用任何你喜歡的html解析包。
『柒』 python網路爬蟲和java爬蟲有什麼區別
爬蟲目前主要開發語言為java、Python、c++
對於一般的信息採集需要,各種語言差別不大。
c、c++
搜索引擎專無一例外使用C\C++ 開發爬蟲,猜想搜索引擎爬蟲採集的網站數量巨大,對頁面的解析要求不高,部分支持javascript
python
網路功能強大,模擬登陸、解析javascript,短處是網頁解析
python寫起程序來真的很便捷,著名的python爬蟲有scrapy等
java
java有很多解析器,對網頁的解析支持很好,缺點是網路部分
java開源爬蟲非常多,著名的如 nutch 國內有webmagic
java優秀的解析器有htmlparser、jsoup
對於一般性的需求無論java還是python都可以勝任。
如需要模擬登陸、對屬抗防採集選擇python更方便些,如果需要處理復雜的網頁,解析網頁內容生成結構化數據或者對網頁內容精細的解析則可以選擇java。