激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - JAVA使用爬蟲抓取網站網頁內容的方法

JAVA使用爬蟲抓取網站網頁內容的方法

2019-12-28 14:46fzhlee JAVA教程

這篇文章主要介紹了JAVA使用爬蟲抓取網站網頁內容的方法,實例分析了java爬蟲的兩種實現技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了JAVA使用爬蟲抓取網站網頁內容的方法。分享給大家供大家參考。具體如下:

最近在用JAVA研究下爬網技術,呵呵,入了個門,把自己的心得和大家分享下
以下提供二種方法,一種是用apache提供的包.另一種是用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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
// 第一種方法
//這種方法是用apache提供的包,簡單方便
//但是要用到以下包:commons-codec-1.4.jar
// commons-httpclient-3.1.jar
// commons-logging-1.0.4.jar
public static String createhttpClient(String url, String param) {
  HttpClient client = new HttpClient();
  String response = null;
  String keyword = null;
  PostMethod postMethod = new PostMethod(url);
//  try {
//   if (param != null)
//    keyword = new String(param.getBytes("gb2312"), "ISO-8859-1");
//  } catch (UnsupportedEncodingException e1) {
//   // TODO Auto-generated catch block
//   e1.printStackTrace();
//  }
  // NameValuePair[] data = { new NameValuePair("keyword", keyword) };
  // // 將表單的值放入postMethod中
  // postMethod.setRequestBody(data);
  // 以上部分是帶參數抓取,我自己把它注銷了.大家可以把注銷消掉研究下
  try {
   int statusCode = client.executeMethod(postMethod);
   response = new String(postMethod.getResponseBodyAsString()
     .getBytes("ISO-8859-1"), "gb2312");
     //這里要注意下 gb2312要和你抓取網頁的編碼要一樣
   String p = response.replaceAll("//&[a-zA-Z]{1,10};", "")
     .replaceAll("<[^>]*>", "");//去掉網頁中帶有html語言的標簽
   System.out.println(p);
  } catch (Exception e) {
   e.printStackTrace();
  }
  return response;
}
// 第二種方法
// 這種方法是JAVA自帶的URL來抓取網站內容
public String getPageContent(String strUrl, String strPostRequest,
   int maxLength) {
  // 讀取結果網頁
  StringBuffer buffer = new StringBuffer();
  System.setProperty("sun.net.client.defaultConnectTimeout", "5000");
  System.setProperty("sun.net.client.defaultReadTimeout", "5000");
  try {
   URL newUrl = new URL(strUrl);
   HttpURLConnection hConnect = (HttpURLConnection) newUrl
     .openConnection();
   // POST方式的額外數據
   if (strPostRequest.length() > 0) {
    hConnect.setDoOutput(true);
    OutputStreamWriter out = new OutputStreamWriter(hConnect
      .getOutputStream());
    out.write(strPostRequest);
    out.flush();
    out.close();
   }
   // 讀取內容
   BufferedReader rd = new BufferedReader(new InputStreamReader(
     hConnect.getInputStream()));
   int ch;
   for (int length = 0; (ch = rd.read()) > -1
     && (maxLength <= 0 || length < maxLength); length++)
    buffer.append((char) ch);
   String s = buffer.toString();
   s.replaceAll("//&[a-zA-Z]{1,10};", "").replaceAll("<[^>]*>", "");
   System.out.println(s);
   rd.close();
   hConnect.disconnect();
   return buffer.toString().trim();
  } catch (Exception e) {
   // return "錯誤:讀取網頁失敗!";
   //
   return null;
  }
}

然后寫個測試類:

?
1
2
3
4
5
6
7
8
public static void main(String[] args) {
  String url = "//www.zmynmublwnt.cn";
  String keyword = "服務器之家";
  createhttpClient p = new createhttpClient();
  String response = p.createhttpClient(url, keyword);
  // 第一種方法
  // p.getPageContent(url, "post", 100500);//第二種方法
}

呵呵,看看控制臺吧,是不是把網頁的內容獲取了

希望本文所述對大家的java程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 色播视频在线播放 | 免费国产| 欧美性黄 | 日本人乱人乱亲乱色视频观看 | 一级黄色免费观看 | 色屁屁xxxxⅹ免费视频 | 在线观看网址av | 欧美激情精品久久久久久黑人 | 午夜精品久久久久久中宇 | 国产资源在线免费观看 | 毛片视频网站 | 羞羞羞羞视频 | 成人午夜一区二区 | 亚洲啊v在线观看 | 在线播放av网址 | 亚洲成人精品一区二区 | 国产资源视频在线观看 | 欧美成网 | 91av在线免费 | 久久精品国产99国产精品亚洲 | 色网站在线免费观看 | 国产午夜精品久久久久久久蜜臀 | 免费黄色a | 国产午夜精品一区二区三区四区 | av免费在线免费观看 | 国产pron | 国产91丝袜在线播放0 | 高清在线国产 | 视频一区二区在线播放 | 91久久国产| 国产91久久精品一区二区 | 国产精品爆操 | 福利在线免费视频 | 国产高潮国产高潮久久久91 | 羞羞视频.www在线观看 | 99在线在线视频免费视频观看 | 午夜精品久久久久久中宇 | av成人免费 | 欧美a视频 | 美女扒开腿让男生桶爽网站 | 国产免费大片视频 |