刚开始不太熟悉正则,在网上搜了下资料,开始了正则的测试之后,终于可以抓取内容了
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利用正则表达式抓取网站图片,非常具有实用价值,需要的朋友可以参考下。
在文件里面,数据的抓取为正则表达式方式抓取数据 实现的方式有。 1.根据文件中出现的字符进行抓取。 2。可以抓取前后2端的中间数据 3。可以抓取前后(不包括前端和后端的数据)的中间的数据。 还有,懒的说了。上...
主要介绍了利用正则表达式抓取博客园列表数据的相关资料,需要的朋友可以参考下
java用正则表达式读取网页内容,通过抓取文章标题及内容,进一步专区整个页面的全部内容,本文代码简单易懂,对java用正则表达式读取网页内容感兴趣的朋友可以参考下
爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...
爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...
爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...
数据提取:根据特定的规则或正则表达式,从解析后的HTML中提取出目标数据。 多线程与异步处理:为了提高抓取效率,可以使用多线程技术同时抓取多个网页;使用异步处理来优化网络请求和数据处理。 反爬虫策略应对:...
该项目采用Java语言开发,通常会使用多线程技术来提高抓取效率,同时还可能涉及到网络编程、并发控制、数据存储等方面的知识。网络爬虫的实现需要考虑到网站的反爬虫机制,如设置User-Agent、限制访问频率、处理...
主要介绍了Java实现爬取往期所有双色球开奖结果功能,涉及Java网页抓取、正则替换、文件读写等相关操作技巧,需要的朋友可以参考下
爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...
爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...
爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...
爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...
爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...
这是一个基于Java语言开发的网络爬虫程序,具备高效、稳定的抓取能力,适用于各种网页数据的采集与处理。采用多线程技术,支持分布式爬取,可轻松应对大规模数据采集需求。 **功能特点**: 1. **URL管理**:自动...
爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...
爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...
基于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) 主模块功能...
爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...