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

优采云 发布时间: 2021-12-17 23:03

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

)

  今天在做项目的时候用java抓取网页的内容。本以为很简单的事情,却还是让我痛了一阵子。需要的是一种读取本地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人工客服


线