當前位置:首頁 » 編程語言 » java爬蟲

java爬蟲

發布時間: 2022-01-12 11:26:57

① 為什麼很少人討論或者使用java爬蟲

1、爬蟲的經濟價值在哪裡?只有經濟價值存在的情況下,才有必要去開發這樣一個爬蟲。但不幸的是,現在的很多場合下,爬蟲沒有太大價值。僅有:比價,數據統計,搜索引擎,信貸爬蟲等有限的幾個場合在用,而這幾個場合基本被大公司壟斷了。所以現在很少有人寫爬蟲了。
2、寫個爬蟲的難度有多大?一上午,僅此而已。所以沒什麼難度,頂多設置一下userAgent,設置一下refer,弄個調用順序先獲得cookie,設置個延時什麼的。換成金錢看,估價大概價值三四百塊吧,用不了多錢。
3、爬蟲能用多久?很久很久,只要被爬的系統不升級,那麼就能一直用下去,換話說:寫一個爬蟲,用半年是很常見的事情。很常見就意味著沒什麼太大意思,不受人關注

② 怎麼提高java爬蟲下載的速度呢

用採集器吧,可以並發採集 ,多節點同時跑會比較快

③ Java爬蟲方向怎麼樣

截止到 2007 年底,Internet 上網頁數量超出 160 億個,研究表明接近 30%的頁面是重復的;動態頁面的存在:客戶端、伺服器端腳本語言的應用使得指向相同 Web 信息的 URL 數量呈指數級增長。 上述特徵使得網路爬蟲面臨一定的困難,主要體現在 Web 信息的巨大容量使得爬蟲在給定時間內只能下載少量網頁。 Lawrence 和 Giles 的研究表明沒有哪個搜索引擎能夠索引超出 16%的Internet 上 Web 頁面,即使能夠提取全部頁面,也沒有足夠的空間來存儲 [1] 。
為提高爬行效率,爬蟲需要在單位時間內盡可能多的獲取高質量頁面,是它面臨的難題之一。 當前有五種表示頁面質量高低的方式[1]:Similarity(頁面與爬行主題之間的相似度)、Backlink(頁面在 Web 圖中的入度大小)、PageRank(指向它的所有頁面平均權值之和)、Forwardlink(頁面在 Web 圖中的出度大小)、Location(頁面的信息位置);Parallel(並行性問題)[3]。 為了提高爬行速度,網路通常會採取並行爬行的工作方式,隨之引入了新的問題:重復性(並行運行的爬蟲或爬行線程同時運行時增加了重復頁面)、質量問題(並行運行時,每個爬蟲或爬行線程只能獲取部分頁面,導致頁面質量下降)、通信帶寬代價(並行運行時,各個爬蟲或爬行線程之間不可避免要進行一些通信)。 並行運行時,網路爬蟲通常採用三種方式:獨立方式(各個爬蟲獨立爬行頁面,互不通信)、動態分配方式(由一個中央協調器動態協調分配 URL 給各個爬蟲)、靜態分配方式(URL 事先劃分給各個爬蟲) [1] 。

④ java爬蟲如何去重


requests+Selenium+PhantomJs
多線程爬蟲的時候用的是
mp.manager.dict()
來存儲已經訪問過的網站,如果發現再次訪問就直接跳過
我能想到的就是
Bloom
Filter
,按照上面所說用
redis
來去重應該也可以!

⑤ java爬蟲怎麼用啊

把String url="http://www..com",換成String url="http://www.sina.com"就是改成新浪網的域名了,說白了就是改個網址就行,其他的看不懂沒關系,不用改直接systemout 輸出看結果就行了

⑥ 給推薦幾個github上優秀的java爬蟲項目

1.nutch
地址:apache/nutch · GitHub
apache下的開源爬蟲程序,功能豐富,文檔完整。有數據抓取解析以及存儲的模塊。

2.Heritrix
地址:internetarchive/heritrix3 · GitHub
很早就有了,經歷過很多次更新,使用的人比較多,功能齊全,文檔完整,網上的資料也多。有自己的web管理控制台,包含了一個HTTP 伺服器。操作者可以通過選擇Crawler命令來操作控制台。

3.crawler4j
地址:yasserg/crawler4j · GitHub
因為只擁有爬蟲的核心功能,所以上手極為簡單,幾分鍾就可以寫一個多線程爬蟲程序。

當然,上面說的nutch有的功能比如數據存儲不代表Heritrix沒有,反之亦然。具體使用哪個合適還需要仔細閱讀文檔並配合實驗才能下結論啊~
還有比如JSpider,WebEater,Java Web Crawler,WebLech,Ex-Crawler,JoBo等等,這些沒用過,不知道。。。

⑦ java爬蟲公司有哪些做的比較好的

知道一個java爬蟲公司,瑞雪採集雲,還是有一些特點的:

瑞雪採集雲是一個PaaS在線開發平台,與圖形配置化爬蟲客戶端工具相比,瑞雪採集雲提供的是通用採集能力,能夠滿足企業客戶數據採集業務的長期需求。

主要特點如下:
(一) 一站式通用能力集成,指數級提高開發效率。平台封裝了豐富的通用功能,開發者不需要關心 Ajax和Cookie等底層細節,只需要利用平台封裝好API,把主要精力放在業務上,工作效率提供10倍。
(二) 開發自由度高,支持復雜網站的採集。支持Java/python編寫應用插件,藉助高級語言的高自由度能夠處理復雜網站的採集。平台提供業內首個基於Web瀏覽器的在線開發環境,無需安裝任何客戶端,提高應用源代碼在客戶內部的共享。
(三) 分布式任務調度機制,並發採集效率高。把採集工作分解為多個採集工序,一個大任務被拆解為在不同工序上執行的大量小任務,然後被分配到海量爬蟲機集群上被分布式並發執行,確保系統達到最高的採集效率。
(四) 強大的任務管理機制,確保數據完整性。平台擁有強大的任務狀態機制,支持任務重發、支持利用結束碼管理任務的不同結束狀態,根據具體情況選擇不同的後續處理,保證不遺漏目標數據,確保最終目標數據的完整性。
(五) 學習時間短,能夠支撐業務的快速發展。平台提供豐富的在線幫助文檔,開發者能夠在1小時內快速掌握平台的基本使用,當有新的數據採集需求時,新的開發者能夠立即學習開發採集爬蟲程序,快速對應相關業務的發展。
(六) 支持私有化部署,保證數據安全。支持平台所有模塊的私有化部署,讓客戶擁有瑞雪採集雲平台的全部能力,保證客戶開發的應用插件代碼和目標數據的絕對安全。

⑧ java爬蟲讀取某一張指定圖片的url,求解答

package pers.jiaming.download.main;import java.io.*; //io包import java.util.regex.*; //正則包import java.net.*; //網路包/** 下載圖片類* */public final class DownloadPictures implements Runnable{
private URL url = null; //URL private URLConnection urlConn = null; //url連接 private BufferedReader bufIn = null; //緩沖讀取器,讀取網頁信息
private static final String IMG_REG = "<img.*src\\s*=\\s*(.*?)[^>]*?>"; //img標簽正則 private static final String IMG_SRC_REG = "src\\s*=\\s*\"?(.*?)(\"|>|\\s+)"; //img src屬性正則
private String downloadPath = null; //保存路徑
//構造,參數:想要下載圖片的網址、下載到的圖片存放的文件路徑 public DownloadPictures(String urlStr, String downloadPath)
{
createFolder(downloadPath); //創建文件夾
try {
url = new URL(urlStr);
urlConn = url.openConnection();
//設置請求屬性,有部分網站不加這句話會拋出IOException: Server returned HTTP response code: 403 for URL異常 //如:b站 urlConn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
bufIn = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
}
catch (Exception e) {
e.printStackTrace();
}

this.downloadPath = downloadPath;
}

//檢測路徑是否存在,不存在則創建 private void createFolder(String path)
{
File myPath = new File(path);

if (!myPath.exists()) //不存在則創建文件夾 myPath.mkdirs();
}

//下載函數 public void Download()
{
final int N = 20; //每一次處理的文本行數,這個數越小越容易遺漏圖片鏈接,越大效率越低 (理論上)
String line = "";
String text = "";

while (line != null) //網頁內容被讀完時結束循環 {
for(int i = 0; i < N; i++) //讀取N行網頁信息存入到text當中,因為src內容可能分為多行,所以使用這種方法 try {
line = bufIn.readLine(); //從網頁信息中獲取一行文本
if(line != null) //判斷防止把null也累加到text中 text += line;
}
catch (IOException e) {
e.printStackTrace();
}

//將img標簽正則封裝對象再調用matcher方法獲取一個Matcher對象 final Matcher imgM = Pattern.compile(IMG_REG).matcher(text);

if(!imgM.find()) //如果在當前text中沒有找到img標簽則結束本次循環 continue;

//將img src正則封裝對象再調用matcher方法獲取一個Matcher對象 //用於匹配的文本為找到的整個img標簽 final Matcher imgSrcM = Pattern.compile(IMG_SRC_REG).matcher(imgM.group());

while (imgSrcM.find()) //從img標簽中查找src內容 {
String imageLink = imgSrcM.group(1); //從正則中的第一個組中得到圖片鏈接
print(imageLink); //列印一遍鏈接
//如果得到的src內容沒有寫協議,則添加上// if(!imageLink.matches("https://[\\s\\S]*")) //這里有問題// imageLink = "https://" + imageLink;
print(imageLink); //列印一遍鏈接
try
{
//緩沖輸入流對象,用於讀取圖片鏈接的圖片數據 //在鏈接的圖片不存在時會拋出未找到文件異常 final BufferedInputStream in = new BufferedInputStream(new URL(imageLink).openStream());

//文件輸出流對象用於將從url中讀取到的圖片數據寫入到本地 //保存的路徑為downloadPath,保存的圖片名為時間戳+".png" final FileOutputStream file = new FileOutputStream(new File(downloadPath + System.currentTimeMillis() + ".png"));

int temp; //用於保存in從圖片連接中獲取到的數據 while ((temp = in.read()) != -1)
file.write(temp); //將數據寫入到本地路徑中
//關閉流 file.close();
in.close();

//下載完一張圖片後休息一會 try {
Thread.sleep(800);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
catch (Exception e)
{
e.printStackTrace();
}
}

//將text中的文本清空 text = "";
}
}

//run @Override
public void run()
{
Download(); //下載函數 }

//列印語句 public void print(Object obj)
{
System.out.println(obj);
}}

⑨ java爬蟲有前途嗎

用python
打個比方java和python爬蟲編寫的時間效率
等於匯編寫一個按鈕,和c#拖拽一個按鈕的效率
雖然有點言過啦,大概這個意思

⑩ 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。

熱點內容
安卓手機怎麼注冊蘋果雲 發布:2024-11-15 01:05:00 瀏覽:407
資料庫設計模板 發布:2024-11-15 00:47:25 瀏覽:825
編程的悟性 發布:2024-11-15 00:47:24 瀏覽:733
主流可編譯語言 發布:2024-11-15 00:42:23 瀏覽:729
excel緩存清除 發布:2024-11-15 00:39:53 瀏覽:486
機械鍵盤可編程 發布:2024-11-15 00:39:09 瀏覽:912
php判斷字元開頭 發布:2024-11-15 00:35:33 瀏覽:507
網易蘋果游戲怎麼轉移到安卓 發布:2024-11-15 00:07:52 瀏覽:270
win7php環境搭建 發布:2024-11-15 00:06:55 瀏覽:17
erpjava 發布:2024-11-14 23:52:23 瀏覽:253