Java用正则表达式如何读取网页内容_正则表达式

学习java的正则表达式,抓取网页并解析HTML部分内容  

package com.xiaofeng.picup;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/** *//**
*
* @抓取页面文章标题及内容(测试) 手动输入网址抓取,可进一步自动抓取整个页面的全部内容
*
*/
public class WebContent ...{
  /** *//**
   * 读取一个网页全部内容
   */
  public String getOneHtml(String htmlurl) throws IOException...{
    URL url;
    String temp;
    StringBuffer sb = new StringBuffer();
    try ...{
      url = new URL(htmlurl);
      BufferedReader in = new BufferedReader(new InputStreamReader(url
          .openStream(), "utf-8"));// 读取网页全部内容
      while ((temp = in.readLine()) != null) ...{
        sb.append(temp);
      }
      in.close();
    }catch(MalformedURLException me)...{
      System.out.println("你输入的URL格式有问题!请仔细输入");
      me.getMessage();
      throw me;
    }catch (IOException e) ...{
      e.printStackTrace();
      throw e;
    }
    return sb.toString();
  }
  /** *//**
   *
   * @param s
   * @return 获得网页标题
   */
  public String getTitle(String s) ...{
    String regex;
    String title = "";
    List<String> list = new ArrayList<String>();
    regex = "<title>.*?</title>";
    Pattern pa = Pattern.compile(regex, Pattern.CANON_EQ);
    Matcher ma = pa.matcher(s);
    while (ma.find()) ...{
      list.add(ma.group());
    }
    for (int i = 0; i < list.size(); i++) ...{
      title = title + list.get(i);
    }
    return outTag(title);
  }
  /** *//**
   *
   * @param s
   * @return 获得链接
   */
  public List<String> getLink(String s) ...{
    String regex;
    List<String> list = new ArrayList<String>();
    regex = "<a[^>]*href=("([^"]*)"|'([^']*)'|([^s>]*))[^>]*>(.*?)</a>";
    Pattern pa = Pattern.compile(regex, Pattern.DOTALL);
    Matcher ma = pa.matcher(s);
    while (ma.find()) ...{
      list.add(ma.group());
    }
    return list;
  }
  /** *//**
   *
   * @param s
   * @return 获得脚本代码
   */
  public List<String> getScript(String s) ...{
    String regex;
    List<String> list = new ArrayList<String>();
    regex = "<script.*?</script>";
    Pattern pa = Pattern.compile(regex, Pattern.DOTALL);
    Matcher ma = pa.matcher(s);
    while (ma.find()) ...{
      list.add(ma.group());
    }
    return list;
  }
  /** *//**
   *
   * @param s
   * @return 获得CSS
   */
  public List<String> getCSS(String s) ...{
    String regex;
    List<String> list = new ArrayList<String>();
    regex = "<style.*?</style>";
    Pattern pa = Pattern.compile(regex, Pattern.DOTALL);
    Matcher ma = pa.matcher(s);
    while (ma.find()) ...{
      list.add(ma.group());
    }
    return list;
  }
  /** *//**
   *
   * @param s
   * @return 去掉标记
   */
  public String outTag(String s) ...{
    return s.replaceAll("<.*?>", "");
  }

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java正则表达式
java 读取网页内容、java 读取网页、java读取网页源码、java读取网页文本、java读取网页数据,以便于您获取更多的相关知识。

时间: 2024-09-15 04:18:58

Java用正则表达式如何读取网页内容_正则表达式的相关文章

共享日常收集JS正则表达式(JavaScript regular expression)_正则表达式

RegExp直接量和对象的创建 就像字符串和数字一样,程序中每个取值相同的原始类型直接量均表示相同的值,这是显而易见的.程序运行时每次遇到对象直接量(初始化表达式)诸如{}和[]的时候都会创建新对象.比如,如果在循环体中写var a = [],则每次遍历都会创建一个新的空数组.正则表达式直接量则与此不同,ECMAScript 3规范规定,一个正则表达式直接量会在执行到它时转换为一个RegExp对象,同一段代码所表示正则表达式直接量的每次运算都返回同一个对象.ECMAScript 5规范则做了相反

JavaScript中常用的正则表达式日常整理(全)_正则表达式

//校验是否全由数字组成 function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return true } 匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^x00-xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:ns*r 评注

JS的正则表达式常用检测代码_正则表达式

JS的正则表达式 //校验是否全由数字组成 function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return true } //校验登录名:只能输入5-20个以字母开头.可带数字."_"."."的字串 Java代码 function isRegisterUserName(s) { var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[.

精通 JavaScript中的正则表达式手机整理 推荐_正则表达式

正则表达式可以: •测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证 •替换文本.可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字 •根据模式匹配从字符串中提取一个子字符串.可以用来在文本或输入字段中查找特定文字 正则表达式语法 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式.该模式描述在查找文字主体时待匹配的一个或多个字符串

js正则表达式验证大全(收集)_正则表达式

引用网址  http://hi.baidu.com/quiteuniverse/blog/item/9f3f043d46ad1e07bba16716.html 以下函数调用方式:    function check() { var bb = document.getElementById("txt_id").value;//txt_id为文本框的ID alert(ismobile(bb));//ismobile 代表以下任何一个函数名称 } HTML代码:   <input ty

JavaScript正则表达式验证代码(推荐)_正则表达式

RegExp:是正则表达式(regular expression)的简写. 正则表达式描述了字符的模式对象.可以使用正则表达式来描述要检索的内容. 简单的模式可以是一个单独的字符.更复杂的模式包括了更多的字符,并可用于解析.格式检查.替换等等. //判断输入内容是否为空 function IsNull(){ var str = document.getElementById('str').value.trim(); if(str.length==0){ alert('对不起,文本框不能为空或者为

JS正则表达式详解[收藏]_正则表达式

JS的正则表达式 //校验是否全由数字组成  function isDigit(s)    {    var patrn=/^[0-9]{1,20}$/;    if (!patrn.exec(s)) return false   return true   }    //校验登录名只能输入5-20个以字母开头.可带数字."_"."."的字串  function isRegisterUserName(s)    {    var patrn=/^[a-zA-Z]{1

js正则表达式基本语法(精粹)_正则表达式

1.正则表达式基本语法 两个特殊的符号'^'和'$'.他们的作用是分别指出一个字符串的开始和结束. 例子如下: "^The":表示所有以"The"开始的字符串("There","The cat"等): "of despair$":表示所以以"of despair"结尾的字符串: "^abc$":表示开始和结尾都是"abc"的字符串--呵呵,只有&q

正则表达式 学习资料整理_正则表达式

常用正则表达式 整理篇http://www.jb51.net/article/17355.htm 正则表达式高级学习技巧http://www.jb51.net/article/9229.htm 1.正则表达式简介 正则表达式(Regular expression,简写为Regexes)是一种用来操作和检验字符串数据的强大工具.它相当与一串特殊的字符,用它可以转换成算法,对文本进行匹配等操作.        事实上正则表达式有其自身的一套语法,这种语法对于初学者来说显得有些晦涩难懂.尤其是其构造比