转自
http://www.iteye.com/topic/211745
package rssTest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author Der
* @date 05-01
* @E-mail uidin@163.com
* */
public class MyRSS
{
/**
* 获取搜索结果的html源码
* */
public static String getHtmlSource(String url)
{
StringBuffer codeBuffer = null;
BufferedReader in=null;
try
{
URLConnection uc = new URL(url).openConnection();
/**
* 为了限制客户端不通过网页直接读取网页内容,就限制只能从浏览器提交请求.
* 但是我们可以通过修改http头的User-Agent来伪装,这个代码就是这个作用
*
*/
uc.setRequestProperty("User-Agent",
"Mozilla/4.0 (compatible; MSIE 5.0; Windows XP; DigExt)");
// 读取url流内容
in = new BufferedReader(new InputStreamReader(uc
.getInputStream(), "gb2312"));
codeBuffer = new StringBuffer();
String tempCode = "";
// 把buffer内的值读取出来,保存到code中
while ((tempCode = in.readLine()) != null)
{
codeBuffer.append(tempCode).append("\n");
}
in.close();
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
return codeBuffer.toString();
}
/**
* 正则表达式
* */
public static String regex()
{
String googleRegex = "<div class=g>(.*?)href=\"(.*?)\"(.*?)\">(.*?)</a>(.*?)<div class=std>(.*?)<br>";
return googleRegex;
}
/**
* 测试用
* 在google中检索关键字,并抽取自己想要的内容
*
* */
public static List<String> GetNews()
{
List<String> newsList = new ArrayList<String>();
String allHtmlSource = MyRSS
.getHtmlSource("http://www.google.cn/search?complete=1&hl=zh-CN&newwindow=1&client=aff-os-maxthon&hs=SUZ&q=%E8%A7%81%E9%BE%99%E5%8D%B8%E7%94%B2&meta=&aq=f");
Pattern pattern = Pattern.compile(regex());
Matcher matcher = pattern.matcher(allHtmlSource);
while (matcher.find())
{
String urlLink = matcher.group(2);
String title = matcher.group(4);
title = title.replaceAll("<font color=CC0033>", "");
title = title.replaceAll("</font>", "");
title = title.replaceAll("<b>...</b>", "");
String content = matcher.group(6);
content = content.replaceAll("<font color=CC0033>", "");
content = content.replaceAll("</font>", "");
content = content.replaceAll("<b>...</b>", "");
newsList.add(urlLink);
newsList.add(title);
newsList.add(content);
}
return newsList;
}
/**
* main方法
* */
public static void main(String[] args)
{
System.out
.println(MyRSS
.getHtmlSource("http://main.house.sina.com.cn/news/zckb/index.html"));
}
}
分享到:
相关推荐
NULL 博文链接:https://lgd-java2eye.iteye.com/blog/756027
这是从我们公司的项目中抽取出来的一部分功能,也是我负责的前台部分。
java用正则表达式读取网页内容,通过抓取文章标题及内容,进一步专区整个页面的全部内容,本文代码简单易懂,对java用正则表达式读取网页内容感兴趣的朋友可以参考下
主要介绍了详解JAVA抓取网页的图片,JAVA利用正则表达式抓取网站图片,非常具有实用价值,需要的朋友可以参考下。
使用httpclient抓取页面信息时需要填写HOST,使用此正则提取抓取URL的HOST内容
本篇文章主要给大家介绍java在正则表达式的使用,本篇文章给大家主要介绍应用点在抓取网页中的email地址和代码统计,感兴趣的朋友一起看看吧
主要介绍了利用正则表达式抓取博客园列表数据的相关资料,需要的朋友可以参考下
在文件里面,数据的抓取为正则表达式方式抓取数据 实现的方式有。 1.根据文件中出现的字符进行抓取。 2。可以抓取前后2端的中间数据 3。可以抓取前后(不包括前端和后端的数据)的中间的数据。 还有,懒的说了。上...
网页爬虫工具能够抓取网页信息的软件网页爬虫工具[PClawer] V1.1 绿色版 PClawer 是一款定制功能较强的网页抓取工具,需要用到正则表达式,适合高级用户使用
这是我自己写的抓取网页上电子邮件地址的Java代码。 界面使用Swing。主要用到的: *1.GUI * 2.事件相应 * 3.正则表达式 * 4.输入输出流 * 5.设计思想:大管家式的。其他类必须持有大管家的引用 不好意思,前天改...
谷歌爬虫 Google Crawler 是一个实验项目... 用户可以添加他/她喜欢的任何正则表达式过滤器 用户可以确定他/她搜索的结果有多近 用户的结果保存为纯文本(在 TXT 文件中) 该应用程序集成了一个独立的 Selenium 服务器
抓取某网页的数据后(比如描述),如果照原样显示的话,可能会因为它里面包含没有闭合的HTML标签而打乱了格式,也可能它里面用了比较让人 费解 的HTML标签,把预订的格式搅乱.
将这数值弹出一个alert并且发信给指定的邮件地址 获取页面内所有地方的以"<< >>"为标示的这个符号代表书名号,获取之中的内容 使用正则表达式>> 功能点: 1)URL抓取页面。 2)正则表达式匹配。 3)邮件系统调用 请注意...
抓取指定网页中的邮箱地址. http://blog.csdn.net/shang1jk/article/details/8782455
常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用...
数据提取:根据特定的规则或正则表达式,从解析后的HTML中提取出目标数据。 多线程与异步处理:为了提高抓取效率,可以使用多线程技术同时抓取多个网页;使用异步处理来优化网络请求和数据处理。 反爬虫策略应对:...
这个Java项目是一个网络爬虫,也称为网络蜘蛛,旨在自动地从互联网上抓取网页内容并进行处理。该网络爬虫具有以下主要功能: 网页抓取:通过指定的起始URL,网络爬虫会递归地抓取网页内容,包括HTML、CSS、...
免费提供给大家,用来抓取网页内容的开发包,直接运行jar可以打开正则表达式测试工具,希望大家一起完善