- 浏览: 176601 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
dupeng41255:
问一下,。com的接口 是不是需要注册啊?我调用的时候返回说需 ...
java实现whois域名查询 -
feiyu86:
比喻的非常贴切。。
synchronized方法和代码块的使用 -
罡风笑:
贴结果:CBH 蜀汉 绝顶 刀客
开心一下 你古代的身份。超级好玩~
import java.net.*;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.io.*;
public class QuestionResult {
private Socket socket;
private String host = "www.01hr.com";
private int port = 80;
private String filePath = "E:\\index.txt";
private ArrayList urlList, imgList;
// 建立socket链接
public void initSocket() throws Exception {
socket = new Socket(host, port);
}
// 取得页面内容方法1
public void getHttpUrlContent() throws Exception {
URL url = new URL("http://www.01hr.com");
InputStream input = url.openStream();
BufferedReader br = new BufferedReader(new InputStreamReader(input));
String data;
File file = new File(filePath);
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
while ((data = br.readLine()) != null) {
matchUrl(data);
matchImage(data);
bw.write(data);
bw.newLine();
}
bw.close();
fw.close();
br.close();
input.close();
}
// 取得页面内容方法2
public void getHttpSocketContent() throws Exception {
StringBuffer sb = new StringBuffer("GET " + "/index.html"
+ " HTTP/1.1\r\n");
sb.append("Host: " + host + "\r\n");
sb.append("Accept: */*\r\n");
sb.append("Accept-Language: zh-cn\r\n");
sb.append("Accept-Encoding: gzip, deflate\r\n");
sb.append("User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)\r\n");
sb.append("Connection: Keep-Alive\r\n\r\n");
OutputStream socketOut = socket.getOutputStream();
socketOut.write(sb.toString().getBytes());
InputStream socketIn = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(socketIn));
File file = new File(filePath);
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
String data;
int i = 0;
while ((data = br.readLine()) != null) {
if (i > 9) {// 不显示返回报文
matchUrl(data);
matchImage(data);
bw.write(data);
bw.newLine();
}
i++;
}
bw.close();
fw.close();
br.close();
socketIn.close();
socketOut.close();
socket.close();
}
//匹配链接内容
public void matchUrl(String str) {
urlList = new ArrayList();
String regEx = "<a.*?href=\"(.*?)\"";
Pattern pat = Pattern.compile(regEx);
Matcher mat = pat.matcher(str);
while (mat.find()) {
urlList.add(mat.group(1));
}
}
//匹配图片内容
public void matchImage(String str) {
imgList = new ArrayList();
String regEx = "<img.*?src=\"(.*?)\"";
Pattern pat = Pattern.compile(regEx);
Matcher mat = pat.matcher(str);
while (mat.find()) {
imgList.add(mat.group(1));
}
}
//打印匹配后的地址
public void printContent(String contentName,ArrayList al){
System.out.println(contentName);
for(int i=0;i<al.size();i++){
System.out.println(al.get(i));
}
}
public static void main(String args[]) throws Exception {
QuestionResult client = new QuestionResult();
/*client.initSocket();//取得页面内容方法2
client.getHttpSocketContent();*/
client.getHttpUrlContent();////取得页面内容方法1
client.printContent("---------------链接地址打印---------------",client.urlList);
client.printContent("---------------图片地址打印---------------",client.imgList);
}
}
发表评论
-
Eclipse 中Hibernate tools 的安装和使用
2014-09-23 20:21 741eclipse 远程安装hibernate插件 自动生成mo ... -
Java关键字final、static使用总结
2011-05-24 12:31 966一、final 根据程序上下文环境,Java关键字final ... -
Ubuntu下jdk的几种不用的环境变量配置
2011-04-08 16:30 21081.安装ubuntu下的jdk 到s ... -
快速递归排序及2分查找
2011-04-06 13:55 1252import java.util.Arrays; pub ... -
Java synchronized用法搜集
2010-08-21 11:13 21851、synchronized关键字的作用域有二种: 1 ... -
生产者与消费者例子(多线程wait()与notifyAll应用)
2010-05-25 16:42 1029package test; import java.ut ... -
synchronized块及方法应用
2010-05-24 16:02 875package test; class Obj impl ... -
run()外部捕获run()内未捕获的异常
2010-05-24 11:25 930package test; import java.ut ... -
java注解简单应用
2010-05-21 13:38 1662package test; import java.la ... -
enum版本石头剪刀布
2010-05-20 15:24 1128package test; public enum Ou ... -
PowerDesigner建模资料
2010-04-22 01:02 988PowerDesigner建模资料 -
jquery帮助文档
2010-04-21 23:49 1054很有用的帮助文档,见附件 -
Hibernate获取数据方式与缓存使用
2010-04-21 21:55 2379Hibernate获取数据的方式有不同的几种,其与缓存结合使用 ... -
URLConnection的连接、超时、关闭用法总结
2010-04-07 20:54 4855Java中可以使用HttpURLConne ... -
螺旋矩阵(顺时针内转)
2010-03-11 15:47 1476import java.util.Arrays; pub ... -
java面试题库
2010-03-08 00:23 775java的一些常见的题集,学习和面试好帮手 -
Apache tomcat集群总结
2010-03-06 03:33 11251.去掉apache中httpd.conf目录中以下几行的注释 ... -
Apache负载均衡设置方法: mod_proxy
2010-03-06 03:28 1113WebjxCom提示:一般来说 ... -
apache中文文档
2010-03-06 01:40 949apache环境配置中的必要手册 -
kxml源码
2010-03-02 23:17 998非常有用的XML解析器,小巧玲珑
相关推荐
本文将围绕“正则匹配URL”这一主题展开,详细解析如何使用正则表达式来识别和匹配URL,特别是针对JSP环境下URL的获取与处理。 ### 正则表达式的应用背景 在Web开发中,URL(统一资源定位符)是网站资源的地址标识...
在Java编程中,正则表达式是处理文本模式匹配的强大工具,尤其在处理网页内容时,如提取网址和链接文字。这个示例展示了如何使用Java的正则表达式来匹配网页中的所有网址和链接文字。下面将详细讲解相关知识点。 1....
在Java编程中,正则表达式是一个强大的工具,用于处理字符串模式匹配和解析。在给定的场景下,我们需要从URL中提取出主机名(HOST),以便在使用HttpClient抓取网页信息时填充相应字段。以下将详细介绍如何使用Java...
一个基本的URL正则表达式如下: ```java String regexURL = "^(http|https)://[a-zA-Z0-9\\-\\.]+\\.[a-zA-Z]{2,3}(\\/\\S*)?$"; ``` 这个表达式能匹配大多数标准格式的URL。 在实际应用中,这些正则表达式可以...
该文档是针对mysql和oracle数据库url地址的校验问题。
根据给定的文件内容,我们可以看到一系列的正则表达式示例,这些示例覆盖了多种常见的验证场景,包括但不限于电子邮件地址、车牌号、密码等。接下来我们将对这些示例进行逐一分析,以便更好地理解和掌握它们。 ####...
在编程领域,正则表达式(Regular Expression)是一种强大的文本处理工具,用于匹配、查找、替换和提取字符串模式。在JAVA和VB这两种编程语言中,正则表达式都是不可或缺的一部分,尤其是在处理数据验证、文本分析和...
提取JS时,可以使用如下的正则:`["']([^"']+)["'][^>]*>`来获取外部脚本的URL,或者提取内联脚本的内容。 4. **图片资源提取**: 图片是网页的重要组成部分。在HTML中,图片由`<img>`标签表示,其`src`属性指向...
本篇将详细讲解如何利用Java编程语言,结合正则表达式和URL来获取指定网站的数据信息。 首先,我们需要了解URL。URL是互联网上资源的唯一地址,它包含了协议类型(如http或https)、服务器地址、路径以及可能的查询...
Java正则表达式是编程语言Java中用于处理字符串的强大工具,它允许我们通过模式匹配来验证、提取或替换文本。在Java中,正则表达式是通过`java.util.regex`包中的类和接口实现的,如`Pattern`、`Matcher`和`...
`Main1.java`可能是程序的入口点,它可能负责读取网页,调用正则表达式进行匹配,然后启动多个`SpiderThread`来并发地获取链接的内容。每个`SpiderThread`则负责处理一个链接,发送HTTP请求并读取响应。 总结来说,...
在这个“正则函数提取图片地址”的例子中,我们主要关注如何使用正则表达式来从HTML文本中提取出图片的URL地址。这对于网页解析、数据抓取或者内容管理等场景尤其有用。 首先,我们要理解HTML中的图片标签`<img>`的...
在Java中,可以利用`java.net.URL`和`java.net.URLConnection`类来访问和读取网页内容,再通过正则表达式匹配图片链接。以下是一种基本的实现方式: 1. **使用URL类访问网页**:首先,需要使用`java.net.URL`类创建...
正则表达式是编程语言中用于模式匹配和字符串处理的强大工具,在Java中也不例外。Java的正则表达式功能强大,可以用于验证输入、提取信息、替换文本等多种场景。本资料"java_zhengze.rar"提供了对Java正则表达式的...
JavaScript正则获取地址栏中参数的方法主要阐述了如何通过正则表达式在JavaScript中获取URL地址栏参数值的技巧。这一方法在Web开发中十分实用,尤其是在处理动态地址时,我们经常需要获取某些特定的查询参数值。通过...
- **String类的matches(), replaceAll(), replaceFirst()**:直接在字符串对象上进行正则匹配和替换操作。 3. **预定义字符类** - `\d`:匹配任何数字(等同于[0-9])。 - `\D`:匹配任何非数字字符(等同于[^0-...