`
huaye2007
  • 浏览: 37154 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

java 正则 抓取数据

 
阅读更多

刚开始不太熟悉正则,在网上搜了下资料,开始了正则的测试之后,终于可以抓取内容了

package com.test;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 抓取短信居的搞笑短信
 * http://www.dxju.com/dxw/gxdx/
 * */
public class Testdxju {

	/**
	 * 提取超链接里面的文本
	 * */
	public static String getRequestData(String urlStr) throws Exception{
		URL url = new URL(urlStr);
		HttpURLConnection urlConn =( HttpURLConnection) url.openConnection();
		int code = urlConn.getResponseCode();
		StringBuffer sb = new StringBuffer("");
		if(code == 200){
			BufferedReader br = new BufferedReader(new InputStreamReader(urlConn.getInputStream(),"gb2312"));
			String str = null;
			while((str = br.readLine()) != null){
				//查看网页源代码之后,里面有多个表格,写此正则之后,就只有一个table了
				String regex2 = "<table.*>.*</table>";
				Pattern pt = Pattern.compile(regex2);
				Matcher mt = pt.matcher(str);
				while(mt.find()){
					//下面就是针对上面的table提取多个url
					String s = mt.group();
					System.out.println(s);
					String regex3 = ">(\\W*)$";//获取文本
					Pattern pt3 = Pattern.compile(regex3);
					String[] strArray = s.split("<[/]a>");//先将字符串以</a>分为字符串数组
					for(String sss:strArray){
						Matcher mt3 = pt3.matcher(sss);
						if(mt3.find()){
							System.out.println(mt3.group(1));
						}
					}
				}
				sb.append(str+"\r\n");
			}
		}
		return sb.toString();
	}
	public static void main(String[] args) {
		try {
			getRequestData("http://www.dxju.com/dxw/gxdx/");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

说下自己刚学到的几个正则里面比较重要的几点

字符串例子 String str="<table><tr><td>aaaaa</td></tr><tr><td>bbbbb</td></tr></table>";

1:重复的标记需要用split来获取成数组再匹配正则:比如table里面会有很多的td,我们需要td里的文本,则先将这个字符串以</td>这个标记来切割字符串,变成一个字符串数组

那么上面的str 经过split("<[/]td>")之后就变成<table><tr><td>aaaaa 和</tr><tr><td>bbbbb </tr></table> 三个字符串

在用正则表达式截取td后面的文本内容就是了 <td>(\\W*)$ 那么如何去掉td呢?注意里面正则表达式有个()小括号,这就是用来分组的,因为这里面只有一个()小括号,所以java代码里面

mt3  .group(1)获取的就是td的文本,多个的话,就是
mt3  .group(1),
mt3  .group(2)
mt3  .group(3)
。。。。。。。这样去取文本。




分享到:
评论

相关推荐

    详解JAVA抓取网页的图片,JAVA利用正则表达式抓取网站图片

    主要介绍了详解JAVA抓取网页的图片,JAVA利用正则表达式抓取网站图片,非常具有实用价值,需要的朋友可以参考下。

    java post获取网页数据以及get方式获取数据

    在文件里面,数据的抓取为正则表达式方式抓取数据 实现的方式有。 1.根据文件中出现的字符进行抓取。 2。可以抓取前后2端的中间数据 3。可以抓取前后(不包括前端和后端的数据)的中间的数据。 还有,懒的说了。上...

    利用正则表达式抓取博客园列表数据

    主要介绍了利用正则表达式抓取博客园列表数据的相关资料,需要的朋友可以参考下

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

    java用正则表达式读取网页内容,通过抓取文章标题及内容,进一步专区整个页面的全部内容,本文代码简单易懂,对java用正则表达式读取网页内容感兴趣的朋友可以参考下

    javaURL抓取知乎explore页面上热门问题和回答的爬虫程序.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    java爬虫 webmagic 抓取egmentfault文章.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    Boss直聘Java爬虫.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    搜索链接Java网络爬虫(蜘蛛)源码-zhizhu

    数据提取:根据特定的规则或正则表达式,从解析后的HTML中提取出目标数据。 多线程与异步处理:为了提高抓取效率,可以使用多线程技术同时抓取多个网页;使用异步处理来优化网络请求和数据处理。 反爬虫策略应对:...

    java项目源码之网络爬虫(蜘蛛)的实现.rar

    该项目采用Java语言开发,通常会使用多线程技术来提高抓取效率,同时还可能涉及到网络编程、并发控制、数据存储等方面的知识。网络爬虫的实现需要考虑到网站的反爬虫机制,如设置User-Agent、限制访问频率、处理...

    Java实现爬取往期所有双色球开奖结果功能示例

    主要介绍了Java实现爬取往期所有双色球开奖结果功能,涉及Java网页抓取、正则替换、文件读写等相关操作技巧,需要的朋友可以参考下

    模拟登录的Java爬虫实现.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    java爬虫,利用代理IP爬取大众点评网站内容.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    房产数据爬虫java 房天下.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    这是关于java网络爬虫的项目,抓取京东书籍的信息.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    java爬虫与ES数据分析.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    Java毕业设计-[搜索链接]Java网络爬虫(蜘蛛)源码_zhizhu.rar

    这是一个基于Java语言开发的网络爬虫程序,具备高效、稳定的抓取能力,适用于各种网页数据的采集与处理。采用多线程技术,支持分布式爬取,可轻松应对大规模数据采集需求。 **功能特点**: 1. **URL管理**:自动...

    java爬虫获取网页数据导出到excle.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    java爬虫,对数据进行爬取并展示.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    基于java爬虫的就业大数据系统设计与实现.rar(含论文+程序毕业设计)

    基于java爬虫的就业大数据系统设计与实现 1 摘 要 1 1.1课题选题背景 4 1.2课题研究的意义 4 2.1功能需求分析 4 2.2系统性能分析 5 3.1系统工作流程图 5 3.2数据结构设计 7 3.3系统各功能流程图 7 (1) 主模块功能...

    利用Java网络爬虫爬取重庆大学新闻网站数据,依据解析的数据构建的新闻网站.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

Global site tag (gtag.js) - Google Analytics