java爬蟲和python爬蟲
1. python與爬蟲有什麼關系
爬蟲一般是指網路資源的抓取,因為python的腳本特性,python易於配置,對字元的處理也非常靈活,加上python有豐富的網路抓取模塊,所以兩者經常聯系在一起。 簡單的用python自己的urllib庫也可以;用python寫一個搜索引擎,而搜索引擎就是一個復雜的爬蟲。從這里你就了解了什麼是Python爬蟲,是基於Python編程而創造出來的一種網路資源的抓取方式,Python並不是爬蟲。
Python為什麼適合些爬蟲?
1)抓取網頁本身的介面
相比與其他靜態編程語言,如java,c#,C++,python抓取網頁文檔的介面更簡潔;相比其他動態腳本語言,如perl,shell,python的urllib2包提供了較為完整的訪問網頁文檔的API。(當然ruby也是很好的選擇)
此外,抓取網頁有時候需要模擬瀏覽器的行為,很多網站對於生硬的爬蟲抓取都是封殺的。這是我們需要模擬user agent的行為構造合適的請求,譬如模擬用戶登陸、模擬session/cookie的存儲和設置。在python里都有非常優秀的第三方包幫你搞定,如Requests,mechanize
2)網頁抓取後的處理
抓取的網頁通常需要處理,比如過濾html標簽,提取文本等。python的beautifulsoap提供了簡潔的文檔處理功能,能用極短的代碼完成大部分文檔的處理。
其實以上功能很多語言和工具都能做,但是用python能夠幹得最快,最干凈。Life is short, u need python.
2. java和python哪個適合寫爬蟲
python相對比較適合寫爬蟲,因為它很多都是寫好的函數,直接調用即可。
3. python和Java哪個好他們有什麼區別
Python和Java都是編程語言,沒有好壞之分。在選擇學習Java編程語言還是Python編程語言之前,得先明白自己學習編程的目的是什麼?是為了學會編程後進入互聯網企業工作,為轉行做准備;還是想快速入門編程語言,學習一份技能傍身,為將來做打算。如果是前者的話建議選擇學習Java,後者的話建議學習Python。
一、入門難度
Python 比Java 更加簡單易學,比如,讀寫一個相同的文件,如果Java需要十行的代碼,而在 Python 中只要兩行就可以達到效果。Python的語法簡潔清晰,語法接近英語,開發環境簡單,適合新手入門學習;Java則需要一定的邏輯思維能力,並且Java基礎語法需要學習的東西也比較多。跟python相比,java前期的入門學習可能會有一定的難度,但後期兩者難度相當。
二、就業應用前景
自2002年起,歷年世界編程語言排行榜——TIOBE排行榜,Java常年位居世界第一,
Python則在2016年排在第五位。Python在國外應用相對成熟,在國內還處於起步階段,近兩年,隨著人工智慧、機器學習的、大數據以及雲計算的興起,Python發展勢如破竹,很多企業開始進入該行列,Python人才的需求量也在不斷上升,但相對於發展較為成熟的ava來說,需求量還是較少。且目前Python就業崗位主要集中在一二線城市,java則覆蓋面更廣。
具體選擇哪門語言進行學習,看題主自己的定位和需求,可以兩樣都試學一下,看自己更適合哪方面,對哪方面更感興趣。
4. 百度爬蟲用什麼語言
問題一:Google和網路的爬蟲是用什麼語言寫的? 15分 每個網站都有一個「爬蟲協議」,至少大型網站都會有。
Robots協議(也襲者雹稱為爬蟲協議、機器人協議等)的全稱是「網路爬蟲排除標准」(Robots Exclusion Protocol),網站通過Robots協議告訴搜索引擎哪些頁面可以抓取,哪些頁面不能抓取。
越是大型網站,Robots協議越規范,他們為了提高自己在搜索結果的位置,會針對網路、谷歌等搜素引擎寫爬蟲協議,而網路等搜索引擎不需要特別針對這些大網站寫協議換個角度想,大的搜索引擎就那幾個,而所謂「大網站」數不勝數,怎麼可能寫的過來?
如果你沒能理解這部分內容,說明你還處在「菜鳥」級別。一般的爬蟲演算法是:先查找新地址,用隊列或者堆棧來存儲新增加的url;然後用爬蟲程序從隊列或者堆棧中取地址,繼續爬蟲。因為這兩方面程序執行的速度是不一樣的,不是說找到一個url就能立即爬完,或者有時候還沒找到新url就已經爬完了,所以分了兩個結構。
一般的程序中都會用多個函數來執行一個過程,但這在新手的學習中是不常見到、也是不易搞懂的。
鑒於你提出的問題,我覺得你不到能搞通爬蟲程序的階段,建議你還是從簡單的程序開始。看看這個編程語言入門經典100例【Python版】,希望對你有幫助
問題二:網路他們公司 那建立索引 做爬蟲這些的用什麼語言? 實現搜索引擎核心演算法 用什麼語言啊? 爬蟲什麼耿言都可以寫 拆解出來 主要就兩部分
一部分是獲取HTML
另一部分是正則表達式
這要有這兩部分就能從網頁上爬出有用的信息來了
至於多線程、OCR、分布式任務要根據你抓取站點的目標來做,並非是必須的
問題三:一般公司做爬蟲採集的話常用什麼語言 C# python
工具 phantomjs casperjs
問題四:請詳細解釋什麼事網路爬蟲,有什麼作用 說通俗一點就是一段程序,這段程序可以在互聯網上自動查詢更新的網站
問題五:網路爬蟲用什麼語言好 爬蟲好像很多語言都有,java,C#,python等等。我自己用的是python.
問題六:開發網路爬蟲用什麼語言比較好 python雖然我拍帆沒用過,但是這個應嘎是最好的
問題七:網路爬蟲用什麼語言什麼方式實現好 首先取決於目的 如果是一個站點,單一目的,用習慣的語言寫吧,學別的語言用的時間都夠重構兩遍的了。 如果是有100左右的站點,做個框架,把你的爬蟲管理起來,比起怎麼寫更重要。 用Java寫過,語言笨重,所建立的數據模型的任何修改都會導致代
問題八:爬蟲web軟體 用什麼開發語言最好 你可以試試用【神箭手雲爬蟲】寫爬蟲,
完全在雲上編寫和執行爬蟲,不需要配置任何開發環境,快速開發快速實現。
官網上有不少網站的爬蟲源碼分享
還有專門的開發者文檔,裡面的教程很詳細,各種基本爬蟲基礎和進階開發知識都有介紹。
爬蟲編輯器:
神箭手雲爬蟲開發平台:
問題九:各種語言寫網路爬蟲有什麼優點缺點 我用 php 和 Python 都寫過爬蟲和正文提取程嫌旅序。
最開始使用 PHP 所以先說說 PHP 的優點:
1.語言比較簡單,PHP 是非常隨意的一種語言。寫起來容易讓你把精力放在你要做的事情上,而不是各種語法規則等等。
2.各種功能模塊齊全,這里分兩部分:
1.網頁下載:curl 等擴展庫;
2.文檔解析:dom、xpath、tidy、各種轉碼工具,可能跟題主的問題不太一樣,我的爬蟲需要提取正文,所以需要很復雜的文本處理,所以各種方便的文本處理工具是我的大愛。;
總之容易上手。
缺點:
1.並發處理能力較弱:由於當時 PHP 沒有線程、進程功能,要想實現並發需要借用多路服用模型,PHP 使用的是 select 模型。實現其來比較麻煩,可能是因為水平問題我的程序經常出現一些錯誤,導致漏抓。
再說說 Python:
優點:
1.各種爬蟲框架,方便高效的下載網頁;
2.多線程、進程模型成熟穩定,爬蟲是一個典型的多任務處理場景,請求頁面時會有較長的延遲,總體來說更多的是等待。多線程或進程會更優化程序效率,提升整個系統下載和分析能力。
3.GAE 的支持,當初寫爬蟲的時候剛剛有 GAE,而且只支持 Python ,利用 GAE 創建的爬蟲幾乎免費,最多的時候我有近千個應用實例在工作。
缺點:
1.對不規范 HTML 適應能力差:舉個例子,如果一個頁面裡面同時有 GB18030 字元集的中文和 UTF-8 字元集的中文,Python 處理起來就沒有 PHP 那麼簡單,你自己需要做很多的判斷工作。當然這是提取正文時的麻煩。
Java 和 C++ 當時也考察過,相對腳本語言比較麻煩,所以放棄。
總之,如果開發一個小規模的爬蟲腳本語言是個各方面比較有優勢的語言。如果要開發一個復雜的爬蟲系統可能 Java 是個增加選項, C++ 我感覺寫個模塊之類的更加適合。對於一個爬蟲系統來說,下載和內文解析只是基本的兩個功能。真正好的系統還包括完善的任務調度、監控、存儲、頁面數據保存和更新邏輯、排重等等。爬蟲是一個耗費帶寬的應用,好的設計會節約大量的帶寬和伺服器資源,並且好壞差距很大。
問題十:爬蟲技術 什麼編程語言 爬蟲的主要原理是抓取html的內容,大部分目前常見的語言都有相關的網路編程API,都能實現網路爬蟲。比如說Java, Python, C++, C#, PHP, Perl等語言都可以。
希望對你有所幫助!
5. 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精英人才。
6. 爬蟲怎麼用
網路爬蟲軟體怎麼使用 5分
搜索引擎使用網路爬蟲尋找網路內容,網路上的HTML文檔使用超鏈接連接了起來,就像功成了一張網,網路爬蟲也叫網路蜘蛛,順著這張網爬行,每到一個網頁就用抓取程序將這個網頁純塌抓下來,將內容抽取出來,同時抽取超鏈接,作為進一步爬行的線索。網路爬蟲總是要從某個起點開始爬,這個起點叫做種子,你可以告訴它,也可以到一些網址列表網站上獲取
網頁抓取/數據抽取/信息提取軟體工具包MetaSeeker是一套完整的解決方案,裡面有定題網路爬蟲,也叫聚焦網路爬蟲,這種爬蟲抓取下來一個頁面後並不抽取所有的超鏈接,而是只找主題相關的鏈接,籠統的說就是爬行的范圍是受控的。網路爬蟲實現代碼主要集中在MetaSeeker工具包中的DataScraper工具。可以從 gooseeker網站下載下來看
請詳細解釋什麼事網路爬蟲,有什麼作用
說通俗一點就是一段程序,這段程序可以在互聯網上自動查詢更新的網站
網站剛建好,沒有信息,聽說有個什麼爬蟲,可以自動抓取,怎麼用?
你說的是自動採集的功能,這個需要插件支持自動採集並且你的空間也要支持自動採集...如果你的空間不許你使用採集功能是會把你的網站刪掉的.因為採集佔用的伺服器資源很高,幾乎沒有空間支持採集功能...你告訴我你使用的是什麼建站系統,我可以給你參考參考...如果你需要採集功能可以採用狂人採集器,和很多建站程序都有介面的!
另外搞採集一般都是搞垃圾站的...呵呵....
網路爬蟲是什麼,有很大的作用嗎?
【網路爬蟲】又被稱為網頁蜘蛛,聚焦爬蟲,網路機器人,在FOAF社區中間,更經常的稱為網頁追逐者,是一種按照一定的規則,自動地抓取萬維網信息的程序或者腳本。另外一些不常使用的名字還有螞蟻做碧圓、自動索引、模擬程序或者蠕蟲。
網路爬蟲是一個自動提取網頁的程序,它為搜索引擎從慧悔萬維網上下載網頁,是搜索引擎的重要組成搐傳統爬蟲從一個或若干初始網頁的URL開始,獲得初始網頁上的URL,在抓取網頁的過程中,不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統的一定停止條件。聚焦爬蟲的工作流程較為復雜,需要根據一定的網頁分析演算法過濾與主題無關的鏈接,保留有用的鏈接並將其放入等待抓取的URL隊列。然後,它將根據一定的搜索策略從隊列中選擇下一步要抓取的網頁URL,並重復上述過程,直到達到系統的某一條件時停止。另外,所有被爬蟲抓取的網頁將會被系統存貯,進行一定的分析、過濾,並建立索引,以便之後的查詢和檢索;對於聚焦爬蟲來說,這一過程所得到的分析結果還可能對以後的抓取過程給出反饋和指導。
如何利用python寫爬蟲程序
這里有比較詳細的介紹
blog.csdn/column/details/why-bug
java 網路爬蟲怎麼實現
代碼如下:package webspider;import java.util.HashSet;import java.util.PriorityQueue;import java.util.Set;import java.util.Queue;public class LinkQueue { 已訪問的 url *** private static Set visitedUrl = new HashSet(); 待訪問的 url *** private static Queue unVisitedUrl = new PriorityQueue(); 獲得URL隊列 public static Queue getUnVisitedUrl() { return unVisitedUrl; } 添加到訪問過的URL隊列中 public static void addVisitedUrl(String url) { visitedUrl.add(url); } 移除訪問過的URL public static void removeVisitedUrl(String url) { visitedUrl.remove(url); } 未訪問的URL出隊列 public static Object unVisitedUrlDeQueue() { return unVisitedUrl.poll(); } 保證每個 url 只被訪問一次 public static void addUnvisitedUrl(String url) { if (url != null && !url.trim().equals("") && !visitedUrl.contains(url) && !unVisitedUrl.contains(url)) unVisitedUrl.add(url); } 獲得已經訪問的URL數目 public static int getVisitedUrlNum() { return visitedUrl.size(); } 判斷未訪問的URL隊列中是否為空 public static boolean unVisitedUrlsEmpty() { return unVisitedUrl.isEmpty(); }}
如何用Java寫一個爬蟲
import java.io.File;import java.URL;import java.URLConnection;import java.nio.file.Files;import java.nio.file.Paths;import java.util.Scanner;import java.util.UUID;import java.util.regex.Matcher;import java.util.regex.Pattern; public class DownMM { public static void main(String[] args) throws Exception { out為輸出的路徑,注意要以\\結尾 String out = "D:\\JSP\\pic\\java\\"; try{ File f = new File(out); if(! f.exists()) { f.mkdirs(); } }catch(Exception e){ System.out.println("no"); } String url = "mzitu/share/ment-page-"; Pattern reg = Patternpile(">
網路爬蟲軟體怎麼使用?急!!!!!!!!!!
每個人寫的程序用法都不一樣,你自己再看下文檔吧,裡面應該有格式!別這么浪費分!
為什麼寫爬蟲都喜歡用python
有更加成熟的一種爬蟲腳本語言,而非框架。是通用的爬蟲軟體ForeSpider,內部自帶了一套爬蟲腳本語言。
從一個專業C++程序猿的角度說,網上流傳的各種Java爬蟲,Python爬蟲,Java需要運行於C++開發的虛擬機上,Python只是腳本語言,採集效率和性能如何能與強大的C++相提並論?C++直接控制系統的底層,對內存空間的控制和節省都是其他語言無法競爭的。首先,forespider的開發語言是C++,而且C++幾乎沒有現成的框架可以用,而火車採集器是用的C#。先從業界水平和良心來說,這個軟體可以做到從底層到上層都是他們的技術人員自己寫的,而非運用現成的框架結構。
其次,因為抓取金融行業的數據,數據量大,動態性強,而採集對象一般反爬蟲策略又很嚴格。所以,專門建立團隊開發不現實。請外包人員開發太貴。買現成的軟體,要考慮性價比。因為很多數據需要登錄,需要驗證碼,是JS生成的數據,是ajax,是協議,有加密的key,有層層的驗證機制等等,分析市面上所有找得到的爬蟲軟體,沒有找到其他一家可以完全把我們列表上的網站採集下來的軟體。forespider功能強大,這是很重要的一點。
第三,forespider在台式機上運行一天可以采400萬條數據,在伺服器上一天可以采8000萬條數據。這樣一來,數據更新速度明顯比以前快了幾十倍。從前抓一個7500萬的網站需要好幾個月,等抓完數據早都變化的不成樣子了,這是很多爬蟲的痛處。但是現在的更新速度只有兩三天。forespider的性能強大,這也是非常好的一點。
第四,其實完全可視化的採集也不需要計算機專業的。大致學習了之後就可以上手采。而且forespider關於數據的管理做的很好。一是軟體可以集成資料庫,在採集之前就可以建表。二是數據可以自動排重,對於金融這樣數據更新要求很高的行業,就特別合適。
第五,是關於免費的問題,我覺得免費的東西同時還能兼顧好用,只能是中國的盜版軟體和手機APP。大概是大家都習慣了在軟體上不花錢,所以都想找到免費的。forespider有免費版的,功能倒是不限制,但是採集數目每天有限制。
最好用的免費爬蟲工具是什麼?
如果說好用的爬蟲軟體,那確實很多,不過首推造數。
造數雲爬蟲,界面簡潔,操作超級簡便免下載。
現在我們有商務定製需求也會找造數的客服解決。效率很高,不錯。
7. 為什麼都說爬蟲PYTHON好
選擇Python作為實現爬蟲的語言,其主要考慮因素在於:
(1) 抓取網頁本身的介面
相比其他動態腳本語言(如Perl、Shell),Python的urllib2包提供了較為完整的訪問網頁文檔的API;相比與其他靜態編程語言(如Java、C#、C++),Python抓取網頁文檔的介面更簡潔。
此外,抓取網頁有時候需要模擬瀏覽器的行為,很多網站對於生硬的爬蟲抓取都是封殺的。這時我們需要模擬User Agent的行為構造合適的請求,譬如模擬用戶登錄、模擬Session/Cookie的存儲和設置。在Python里都有非常優秀的第三方包幫你搞定,如Requests或Mechanize。
(2) 網頁抓取後的處理
抓取的網頁通常需要處理,比如過濾Html標簽,提取文本等。Python的Beautiful Soup提供了簡潔的文檔處理功能,能用極短的代碼完成大部分文檔的處理。
其實以上功能很多語言和工具都能做,但是用Python能夠幹得最快、最干凈,正如這句「Life is short,you need Python」。
(3) 開發效率高
因為爬蟲的具體代碼根據網站不同而修改的,而Python這種靈活的腳本語言特別適合這種任務。
(4) 上手快
網路上Python的教學資源很多,便於大家學習,出現問題也很容易找到相關資料。另外,Python還有強大的成熟爬蟲框架的支持,比如Scrapy。
8. 為什麼常用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。
9. 除了python可以爬蟲還有哪些編程語言可以爬蟲
能夠做網路爬蟲的編程語言很多,包括PHP、Java、C/C++、Python等都能做爬蟲,都能達到抓取想要的數據資源。針對不同的環境,我們需要了解他們做爬蟲的優缺點,才能選出合適的開發環境。
(一)PHP
網路爬蟲需要快速的從伺服器中抓取需要的數據,有時數據量較大時需要進行多線程抓取。PHP雖然是世界上最好的語言,但是PHP對多線程、非同步支持不足,並發不足,而爬蟲程序對速度和效率要求極高,所以說PHP天生不是做爬蟲的。
(二)C/C++
C語言是一門面向過程、抽象化的通用程序設計語言,廣泛應用於底層開發,運行效率和性能是最強大的,但是它的學習成本非常高,需要有很好地編程知識基礎,對於初學者或者編程知識不是很好地程序員來說,不是一個很好的選擇。當然,能夠用C/C++編寫爬蟲程序,足以說明能力很強,但是絕不是最正確的選擇。
(三)Java
在網路爬蟲方面,作為Python最大的對手Java,擁有強大的生態圈。但是Java本身很笨重,代碼量大。由於爬蟲與反爬蟲的較量是持久的,也是頻繁的,剛寫好的爬蟲程序很可能就不能用了。爬蟲程序需要經常性的修改部分代碼。而Java的重構成本比較高,任何修改都會導致大量代碼的變動。
(四)Python
Python在設計上堅持了清晰劃一的風格,易讀、易維護,語法優美、代碼簡潔、開發效率高、第三方模塊多。並且擁有強大的爬蟲Scrapy,以及成熟高效的scrapy-redis分布式策略。實現同樣的爬蟲功能,代碼量少,而且維護方便,開發效率高。
10. java適合寫爬蟲嗎
JAVA也可以實現爬蟲,比如jsoup包,一個非常方便解析html的工具呢。
不過相對來說,java語言笨重,稍微有些麻煩。