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

java模擬爬蟲

發布時間: 2022-10-17 22:15:08

① 如何用java寫一個爬蟲

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

import java.io.File;
import java.net.URL;
import java.net.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 = "http://www.mzitu.com/share/comment-page-";
Pattern reg = Pattern.compile("<img src=\"(.*?)\"");
for(int j=0, i=1; i<=10; i++){
URL uu = new URL(url+i);
URLConnection conn = uu.openConnection();
conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko");
Scanner sc = new Scanner(conn.getInputStream());
Matcher m = reg.matcher(sc.useDelimiter("\\A").next());
while(m.find()){
Files.(new URL(m.group(1)).openStream(), Paths.get(out + UUID.randomUUID() + ".jpg"));
System.out.println("已下載:"+j++);
}
}
}
}

② 請教用java編寫一個網路爬蟲程序

你說說你都要什麼功能啊,要是功能簡單我就給你做,復雜你得給點錢

③ java如何做高級爬蟲

下面說明知乎爬蟲的源碼和涉及主要技術點:
(1)程序package組織

(2)模擬登錄(爬蟲主要技術點1)
要爬去需要登錄的網站數據,模擬登錄是必要可少的一步,而且往往是難點。知乎爬蟲的模擬登錄可以做一個很好的案例。要實現一個網站的模擬登錄,需要兩大步驟是:(1)對登錄的請求過程進行分析,找到登錄的關鍵請求和步驟,分析工具可以有IE自帶(快捷鍵F12)、Fiddler、HttpWatcher;(2)編寫代碼模擬登錄的過程。

(3)網頁下載(爬蟲主要技術點2)
模擬登錄後,便可下載目標網頁html了。知乎爬蟲基於HttpClient寫了一個網路連接線程池,並且封裝了常用的get和post兩種網頁下載的方法。

(4)自動獲取網頁編碼(爬蟲主要技術點3)
自動獲取網頁編碼是確保下載網頁html不出現亂碼的前提。知乎爬蟲中提供方法可以解決絕大部分亂碼下載網頁亂碼問題。

(5)網頁解析和提取(爬蟲主要技術點4)
使用Java寫爬蟲,常見的網頁解析和提取方法有兩種:利用開源Jar包Jsoup和正則。一般來說,Jsoup就可以解決問題,極少出現Jsoup不能解析和提取的情況。Jsoup強大功能,使得解析和提取異常簡單。知乎爬蟲採用的就是Jsoup。 ...展開下面說明知乎爬蟲的源碼和涉及主要技術點:
(1)程序package組織

(2)模擬登錄(爬蟲主要技術點1)
要爬去需要登錄的網站數據,模擬登錄是必要可少的一步,而且往往是難點。知乎爬蟲的模擬登錄可以做一個很好的案例。要實現一個網站的模擬登錄,需要兩大步驟是:(1)對登錄的請求過程進行分析,找到登錄的關鍵請求和步驟,分析工具可以有IE自帶(快捷鍵F12)、Fiddler、HttpWatcher;(2)編寫代碼模擬登錄的過程。

(3)網頁下載(爬蟲主要技術點2)
模擬登錄後,便可下載目標網頁html了。知乎爬蟲基於HttpClient寫了一個網路連接線程池,並且封裝了常用的get和post兩種網頁下載的方法。

(4)自動獲取網頁編碼(爬蟲主要技術點3)
自動獲取網頁編碼是確保下載網頁html不出現亂碼的前提。知乎爬蟲中提供方法可以解決絕大部分亂碼下載網頁亂碼問題。

(5)網頁解析和提取(爬蟲主要技術點4)
使用Java寫爬蟲,常見的網頁解析和提取方法有兩種:利用開源Jar包Jsoup和正則。一般來說,Jsoup就可以解決問題,極少出現Jsoup不能解析和提取的情況。Jsoup強大功能,使得解析和提取異常簡單。知乎爬蟲採用的就是Jsoup。

(6)正則匹配與提取(爬蟲主要技術點5)
雖然知乎爬蟲採用Jsoup來進行網頁解析,但是仍然封裝了正則匹配與提取數據的方法,因為正則還可以做其他的事情,如在知乎爬蟲中使用正則來進行url地址的過濾和判斷。

(7)數據去重(爬蟲主要技術點6)
對於爬蟲,根據場景不同,可以有不同的去重方案。(1)少量數據,比如幾萬或者十幾萬條的情況,使用Map或Set便可;(2)中量數據,比如幾百萬或者上千萬,使用BloomFilter(著名的布隆過濾器)可以解決;(3)大量數據,上億或者幾十億,Redis可以解決。知乎爬蟲給出了BloomFilter的實現,但是採用的Redis進行去重。

(8)設計模式等Java高級編程實踐
除了以上爬蟲主要的技術點之外,知乎爬蟲的實現還涉及多種設計模式,主要有鏈模式、單例模式、組合模式等,同時還使用了Java反射。除了學習爬蟲技術,這對學習設計模式和Java反射機制也是一個不錯的案例。
4. 一些抓取結果展示收起

④ 如何用Java寫一個爬蟲

mfc中,定義private:Cbutton m_btn;//運行的地方輸入m_btn.Create(L」增加的按鈕!」,BS_DEFPUSHBUTTON | WS_VISIBLE | WS_CHILD,CRect(0,0,100,100),this,123);第一個參數就是按鈕的標題,不用多說了;第二個參數是按鈕的類型。BS_DEFPUSHBUTTON是這個按鈕本身的類型。WS_VISIBLE是一個窗口的類型,因為按鈕本身也是一個窗口,所以它也具有窗口的類型,WS_VISIBLE就是為了讓這個按鈕在創建的時候本身就是可見的,如果這里沒有加WS_VISIBLE,那麼最後我們可以調用ShowWindow來顯示這個按鈕。WS_CHILD是一個子窗口類型。第三個參數是按鈕控制項矩形區域的大小,這里我們是通過調用CRect類來完成。第四個參數是父窗口,我們這里用this來表示。第五個參數是按鈕的控制項,我們定為123。

⑤ 如何用Java寫一個爬蟲

import java.io.File;import java.net.URL;import java.net.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.Pa.

⑥ 如何用Java寫一個爬蟲

import java.io.File;import java.net.URL;import java.net.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 = "http://www.mzitu.com/share/comment-page-"; Pattern reg = Pattern.compile("<img src=\"(.*?)\""); for(int j=0, i=1; i<=10; i++){ URL uu = new URL(url+i); URLConnection conn = uu.openConnection(); conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko"); Scanner sc = new Scanner(conn.getInputStream()); Matcher m = reg.matcher(sc.useDelimiter("\\A").next()); while(m.find()){ Files.(new URL(m.group(1)).openStream(), Paths.get(out + UUID.randomUUID() + ".jpg")); System.out.println("已下載:"+j++); } } }}

⑦ 如何使用Java語言實現一個網頁爬蟲

Java開源Web爬蟲

Heritrix

Heritrix是一個開源,可擴展的web爬蟲項目。Heritrix設計成嚴格按照robots.txt文件的排除指示和META robots標簽。

更多Heritrix信息

WebSPHINX

WebSPHINX是一個Java類包和Web爬蟲的互動式開發環境。Web爬蟲(也叫作機器人或蜘蛛)是可以自動瀏覽與處理Web頁面的程序。WebSPHINX由兩部分組成:爬蟲工作平台和WebSPHINX類包。

更多WebSPHINX信息

WebLech

WebLech是一個功能強大的Web站點下載與鏡像工具。它支持按功能需求來下載web站點並能夠盡可能模仿標准Web瀏覽器的行為。WebLech有一個功能控制台並採用多線程操作。

⑧ 如何使用Java語言實現一個網頁爬蟲

我給你代碼
public class DEmo {
public static void match(String s1) {
Pattern p = Pattern.compile("<a(.*)>.*</a>");
Matcher m = p.matcher(s1);
while (m.find()) {
System.out.println(m.group(1));
}
}

public static void main(String args[]) {
URL url;
int responsecode;
HttpURLConnection urlConnection;
BufferedReader reader;
String line;
try {
// 生成一個URL對象,要獲取源代碼的網頁地址為:http://www.sina.com.cn
url = new URL("http://www.jb51.net/article/97787.htm");
// 打開URL
urlConnection = (HttpURLConnection) url.openConnection();
// 獲取伺服器響應代碼
responsecode = urlConnection.getResponseCode();
String temp = "";
if (responsecode == 200) {
// 得到輸入流,即獲得了網頁的內容
reader = new BufferedReader(new InputStreamReader(
urlConnection.getInputStream(), "GBK"));
while ((line = reader.readLine()) != null) {
temp = temp + line;
}
System.out.println(temp);
match(temp);

} else {
System.out.println("獲取不到網頁的源碼,伺服器響應代碼為:" + responsecode);
}
} catch (Exception e) {
System.out.println("獲取不到網頁的源碼,出現異常:" + e);
}

}
}

熱點內容
展示迷宮演算法 發布:2024-12-25 00:58:25 瀏覽:438
手機酷我音樂上傳歌詞 發布:2024-12-25 00:58:14 瀏覽:796
路由器哪裡改密碼 發布:2024-12-25 00:53:18 瀏覽:658
編譯原理數組的翻譯三地址代碼 發布:2024-12-25 00:53:18 瀏覽:892
全新哈弗h6哪個車型配置夠用 發布:2024-12-25 00:51:35 瀏覽:888
安卓系統部落沖突如何用微信登錄 發布:2024-12-25 00:50:08 瀏覽:363
oracle啟動資料庫服務 發布:2024-12-25 00:50:03 瀏覽:66
手機游戲源碼開發 發布:2024-12-25 00:48:09 瀏覽:402
直流屏密碼是多少 發布:2024-12-25 00:28:26 瀏覽:655
汽車配置怎麼看馬力 發布:2024-12-25 00:23:49 瀏覽:84