一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

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

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java利用url實現網頁內容的抓取

java利用url實現網頁內容的抓取

2020-08-27 14:52zangcunmiao Java教程

本文主要介紹了java利用url實現網頁內容抓取的示例。具有很好的參考價值。下面跟著小編一起來看下吧

閑來無事,剛學會把git部署到遠程服務器,沒事做,所以簡單做了一個抓取網頁信息的小工具,里面的一些數值如果設成參數的話可能擴展性能會更好!希望這是一個好的開始把,也讓我對字符串的讀取掌握的更加熟練了,值得注意的是JAVA1.8 里面在使用String拼接字符串的時候,會自動把你要拼接的字符串用StringBulider來處理,大大優化了String 的性能,閑話不多說,show my XXX code~

運行效果:

java利用url實現網頁內容的抓取

首先打開百度百科,搜索詞條,比如“演員”,再按F12查看源碼

java利用url實現網頁內容的抓取

然后抓取你想要的標簽,注入LinkedHashMap里面就ok了,很簡單是吧!看看代碼羅

java" id="highlighter_616868">
?
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.*;
/**
 * Created by chunmiao on 17-3-10.
 */
public class ReadBaiduSearch {
 //儲存返回結果
 private LinkedHashMap<String,String> mapOfBaike;
 //獲取搜索信息
 public LinkedHashMap<String,String> getInfomationOfBaike(String infomationWords) throws IOException {
  mapOfBaike = getResult(infomationWords);
  return mapOfBaike;
 }
 //通過網絡鏈接獲取信息
 private static LinkedHashMap<String, String> getResult(String keywords) throws IOException {
  //搜索的url
  String keyUrl = "http://baike.baidu.com/search?word=" + keywords;
  //搜索詞條的節點
  String startNode = "<dl class=\"search-list\">";
  //詞條的鏈接關鍵字
  String keyOfHref = "href=\"";
  //詞條的標題關鍵字
  String keyOfTitle = "target=\"_blank\">";
  String endNode = "</dl>";
  boolean isNode = false;
  String title;
  String href;
  String rLine;
  LinkedHashMap<String,String> keyMap = new LinkedHashMap<String,String>();
  //開始網絡請求
  URL url = new URL(keyUrl);
  HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
  InputStreamReader inputStreamReader = new InputStreamReader(urlConnection.getInputStream(),"utf-8");
  BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
  //讀取網頁內容
  while ((rLine = bufferedReader.readLine()) != null){
   //判斷目標節點是否出現
   if(rLine.contains(startNode)){
    isNode = true;
   }
   //若目標節點出現,則開始抓取數據
   if (isNode){
    //若目標結束節點出現,則結束讀取,節省讀取時間
    if (rLine.contains(endNode)) {
     //關閉讀取流
     bufferedReader.close();
     inputStreamReader.close();
     break;
    }
    //若值為空則不讀取
    if (((title = getName(rLine,keyOfTitle)) != "") && ((href = getHref(rLine,keyOfHref)) != "")){
     keyMap.put(title,href);
    }
   }
  }
  return keyMap;
 }
 //獲取詞條對應的url
 private static String getHref(String rLine,String keyOfHref){
  String baikeUrl = "http://baike.baidu.com";
  String result = "";
  if(rLine.contains(keyOfHref)){
   //獲取url
   for (int j = rLine.indexOf(keyOfHref) + keyOfHref.length();j < rLine.length()&&(rLine.charAt(j) != '\"');j ++){
    result += rLine.charAt(j);
   }
   //獲取的url中可能不含baikeUrl,如果沒有則在頭部添加一個
   if(!result.contains(baikeUrl)){
    result = baikeUrl + result;
   }
  }
  return result;
 }
 //獲取詞條對應的名稱
 private static String getName(String rLine,String keyOfTitle){
  String result = "";
  //獲取標題內容
  if(rLine.contains(keyOfTitle)){
   result = rLine.substring(rLine.indexOf(keyOfTitle) + keyOfTitle.length(),rLine.length());
   //將標題中的內容含有的標簽去掉
   result = result.replaceAll("<em>|</em>|</a>|<a>","");
  }
  return result;
 }
}

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持服務器之家!

原文鏈接:http://www.cnblogs.com/sospopo/p/6533797.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: wc凹凸撒尿间谍女厕hd | 99久久久久国产精品免费 | 欧美一级在线播放 | 国内精品91东航翘臀女神在线 | 久久无码AV亚洲精品色午夜麻豆 | 欧美xxxxx九色视频免费观看 | 俺去啦最新地址 | 精品国产一区二区三区在线 | 国产欧美日韩精品在线 | 国产成人免费a在线资源 | 日本69sex护士www | 爱草影院| 四虎影视在线影院在线观看观看 | 欧美另类老女人 | 欧美性色黄大片四虎影视 | 欧美一级特黄特色大片免费 | 色图18p| 明星梦淫 | 无毒成人社区 | 色99视频 | 免费看视频高清在线观看 | 色欲麻豆国产福利精品 | 欧美一级片在线看 | 海绵宝宝第二季全集免费观看 | 国产福利在线观看91精品 | 激情三级hd中文字幕 | 欧美破苞合集 magnet | 亚洲一区二区三区久久精品 | 免费人成网址在线观看国内 | 欧美日韩一区二区三区免费 | 免费高清资源黄网站在线观看 | 爸爸的宝贝小说全文在线阅读 | 美国videos | 欧美一级专区免费大片俄罗斯 | 国产精品嫩草影院在线 | 亚洲国产日韩欧美在线vip1区 | 国产精品亚洲精品日韩已方 | 四虎现在的网址入口2022 | 特黄特色大片免费高清视频 | 久久精品嫩草影院免费看 | 免费被黄网站在观看 |