最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java獲取任意http網(wǎng)頁源代碼的方法

 更新時間:2017年09月26日 10:30:28   作者:dackwind  
這篇文章主要介紹了Java獲取任意http網(wǎng)頁源代碼的方法,可實現(xiàn)獲取網(wǎng)頁代碼以及去除HTML標(biāo)簽的代碼功能,涉及Java正則操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了JAVA獲取任意http網(wǎng)頁源代碼。分享給大家供大家參考,具體如下:

JAVA獲取任意http網(wǎng)頁源代碼可實現(xiàn)如下功能:

1. 獲取任意http網(wǎng)頁的代碼
2. 獲取任意http網(wǎng)頁去掉HTML標(biāo)簽的代碼

Webpage類:

/**
 * 網(wǎng)頁操作相關(guān)類
 */
package test;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
 * @author winddack
 *
 */
public class Webpage {
  private String pageUrl;//定義需要操作的網(wǎng)頁地址
  private String pageEncode="UTF8";//定義需要操作的網(wǎng)頁的編碼
  public String getPageUrl() {
    return pageUrl;
  }
  public void setPageUrl(String pageUrl) {
    this.pageUrl = pageUrl;
  }
  public String getPageEncode() {
    return pageEncode;
  }
  public void setPageEncode(String pageEncode) {
    this.pageEncode = pageEncode;
  }
  //定義取源碼的方法
  public String getPageSource()
  {
    StringBuffer sb = new StringBuffer();
    try {
      //構(gòu)建一URL對象
      URL url = new URL(pageUrl);
      //使用openStream得到一輸入流并由此構(gòu)造一個BufferedReader對象
      BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), pageEncode));
      String line;
      //讀取www資源
      while ((line = in.readLine()) != null)
      {
        sb.append(line);
      }
      in.close();
    }
    catch (Exception ex)
    {
      System.err.println(ex);
    }
    return sb.toString();
  }
  //定義一個把HTML標(biāo)簽刪除過的源碼的方法
  public String getPageSourceWithoutHtml()
  {
    final String regEx_script = "<script[^>]*?>[\\s\\S]*?<\\/script>"; // 定義script的正則表達(dá)式
    final String regEx_style = "<style[^>]*?>[\\s\\S]*?<\\/style>"; // 定義style的正則表達(dá)式
    final String regEx_html = "<[^>]+>"; // 定義HTML標(biāo)簽的正則表達(dá)式
    final String regEx_space = "\\s*|\t|\r|\n";//定義空格回車換行符
    String htmlStr = getPageSource();//獲取未處理過的源碼
    Pattern p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);
    Matcher m_script = p_script.matcher(htmlStr);
    htmlStr = m_script.replaceAll(""); // 過濾script標(biāo)簽
    Pattern p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);
    Matcher m_style = p_style.matcher(htmlStr);
    htmlStr = m_style.replaceAll(""); // 過濾style標(biāo)簽
    Pattern p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);
    Matcher m_html = p_html.matcher(htmlStr);
    htmlStr = m_html.replaceAll(""); // 過濾html標(biāo)簽
    Pattern p_space = Pattern.compile(regEx_space, Pattern.CASE_INSENSITIVE);
    Matcher m_space = p_space.matcher(htmlStr);
    htmlStr = m_space.replaceAll(""); // 過濾空格回車標(biāo)簽
    htmlStr = htmlStr.trim(); // 返回文本字符串
    htmlStr = htmlStr.replaceAll("&nbsp;", "");
    htmlStr = htmlStr.substring(0, htmlStr.indexOf("。")+1);
    return htmlStr;
  }
}

調(diào)用:

Webpage page=new Webpage();
page.setPageUrl("http://www.baidu.com");
String code=page.getPageSourceWithoutHtml();
System.out.println(code);

PS:這里再為大家提供2款非常方便的正則表達(dá)式工具供大家參考使用:

JavaScript正則表達(dá)式在線測試工具:
http://tools.jb51.net/regex/javascript

正則表達(dá)式在線生成工具:
http://tools.jb51.net/regex/create_reg

更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java正則表達(dá)式技巧大全》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設(shè)計有所幫助。

相關(guān)文章

  • JAVA加密算法- 非對稱加密算法(DH,RSA)的詳細(xì)介紹

    JAVA加密算法- 非對稱加密算法(DH,RSA)的詳細(xì)介紹

    這篇文章主要介紹了JAVA加密算法- 非對稱加密算法(DH,RSA),詳細(xì)介紹了DH,RSA的用法和示例,需要的朋友可以了解一下。
    2016-11-11
  • Dependency ‘XXX:‘ not found問題的三步解決

    Dependency ‘XXX:‘ not found問題的三步解決

    這篇文章主要介紹了Dependency ‘XXX:‘ not found問題的三步解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • java前后端加密解密crypto-js的實現(xiàn)

    java前后端加密解密crypto-js的實現(xiàn)

    這篇文章主要介紹了java前后端加密解密crypto-js的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Java后端實現(xiàn)短鏈接生成功能

    Java后端實現(xiàn)短鏈接生成功能

    短鏈接生成主要在于把指定的接口和參數(shù)實現(xiàn)加密生成比較短的字符串,再進(jìn)行拼接通過指定的域名或者ip實現(xiàn)鏈接的跳轉(zhuǎn),下面我們來看看如何使用Java實現(xiàn)這一功能吧
    2025-03-03
  • Java多線程:生產(chǎn)者與消費者案例

    Java多線程:生產(chǎn)者與消費者案例

    這篇文章主要介紹了Java并發(fā)編程中的生產(chǎn)者與消費者模型簡述,多線程并發(fā)是Java編程中最終要的部分之一,需要的朋友可以參考下,希望能給你帶來幫助
    2021-07-07
  • SpringBoot中使用Quartz管理定時任務(wù)的方法

    SpringBoot中使用Quartz管理定時任務(wù)的方法

    這篇文章主要介紹了SpringBoot中使用Quartz管理定時任務(wù)的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • Java 確保某個Bean類被最后執(zhí)行的幾種實現(xiàn)方式

    Java 確保某個Bean類被最后執(zhí)行的幾種實現(xiàn)方式

    這篇文章主要介紹了Java 確保某個BeanDefinitionRegistryPostProcessor Bean被最后執(zhí)行的幾種實現(xiàn)方式,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03
  • 計算兩個字符串最大公有子串

    計算兩個字符串最大公有子串

    本文主要介紹了計算兩個字符串最大公有子串的解決方案。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • 基于Springboot+Junit+Mockito做單元測試的示例

    基于Springboot+Junit+Mockito做單元測試的示例

    本篇文章主要介紹了基于Springboot+Junit+Mockito做單元測試的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • spring?@Primary-在spring中的使用方式

    spring?@Primary-在spring中的使用方式

    這篇文章主要介紹了spring?@Primary-在spring中的使用方式,具有很好的參考價值,希望對大家有所幫助。
    2022-01-01

最新評論

荆州市| 黔江区| 江西省| 太仓市| 东兴市| 宁陵县| 宣城市| 西丰县| 藁城市| 忻城县| 合山市| 台北县| 苗栗市| 保康县| 双流县| 漯河市| 太白县| 樟树市| 台东市| 奇台县| 绵阳市| 宜川县| 枣强县| 武山县| 云霄县| 遵义市| 建始县| 禄劝| 九台市| 万年县| 凤翔县| 辽宁省| 含山县| 万山特区| 云霄县| 湘潭县| 广宗县| 浑源县| 梨树县| 满洲里市| 乃东县|