java抓取网页内容(读取本地和通过url抓取网页内容的html页面内容的方法 )

优采云 发布时间: 2021-09-17 16:27

  java抓取网页内容(读取本地和通过url抓取网页内容的html页面内容的方法

)

  今天做项目时用到java抓取网页内容,本以为很简单的一件事但是还是让我蛋疼了一会,网上资料一大堆但是都是通过url抓取网页内容,但是我要的是读取本地的html页面内容的方法,网上找不到怎么办

  

  我瞬间

  

  了!

  首先还是向大家讲解一下通过url抓取网页内容吧,通过正则表达式摘取title、js、css等网页元素,代码如下:

<p>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.List;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

/**

*

* @author yaohucaizi

*/

public class Test {

/**

* 读取网页全部内容

*/

public String getHtmlContent(String htmlurl) {

URL url;

String temp;

StringBuffer sb = new StringBuffer();

try {

url = new URL(htmlurl);

BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), "gbk"));// 读取网页全部内容

while ((temp = in.readLine()) != null) {

sb.append(temp);

}

in.close();

} catch (final MalformedURLException me) {

System.out.println("你输入的URL格式有问题!");

me.getMessage();

} catch (final IOException e) {

e.printStackTrace();

}

return sb.toString();

}

/**

*

* @param s

* @return 获得网页标题

*/

public String getTitle(String s) {

String regex;

String title = "";

List list = new ArrayList();

regex = ".*?";

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 getLink(String s) {

String regex;

List list = new ArrayList();

regex = "]*href=(\"([^\"]*)\"|\&#39;([^\&#39;]*)\&#39;|([^\\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 getScript(String s) {

String regex;

List list = new ArrayList();

regex = "

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线