`
zsnlovewl
  • 浏览: 176375 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java获取url内容及正则匹配链接图片地址

    博客分类:
  • JAVA
阅读更多

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);
}

}

分享到:
评论

相关推荐

    正则匹配URL.txt

    本文将围绕“正则匹配URL”这一主题展开,详细解析如何使用正则表达式来识别和匹配URL,特别是针对JSP环境下URL的获取与处理。 ### 正则表达式的应用背景 在Web开发中,URL(统一资源定位符)是网站资源的地址标识...

    java正则表达式匹配网页所有网址和链接文字的示例

    在Java编程中,正则表达式是处理文本模式匹配的强大工具,尤其在处理网页内容时,如提取网址和链接文字。这个示例展示了如何使用Java的正则表达式来匹配网页中的所有网址和链接文字。下面将详细讲解相关知识点。 1....

    java正则表达式获取url的host示例

    在Java编程中,正则表达式是一个强大的工具,用于处理字符串模式匹配和解析。在给定的场景下,我们需要从URL中提取出主机名(HOST),以便在使用HttpClient抓取网页信息时填充相应字段。以下将详细介绍如何使用Java...

    java 银行卡 验证 正则表达式使用

    一个基本的URL正则表达式如下: ```java String regexURL = "^(http|https)://[a-zA-Z0-9\\-\\.]+\\.[a-zA-Z]{2,3}(\\/\\S*)?$"; ``` 这个表达式能匹配大多数标准格式的URL。 在实际应用中,这些正则表达式可以...

    数据库url正则表达式校验

    该文档是针对mysql和oracle数据库url地址的校验问题。

    java正则表达式实例(邮箱,车牌,密码,url,IP,身份证,车牌等等)

    根据给定的文件内容,我们可以看到一系列的正则表达式示例,这些示例覆盖了多种常见的验证场景,包括但不限于电子邮件地址、车牌号、密码等。接下来我们将对这些示例进行逐一分析,以便更好地理解和掌握它们。 ####...

    JAVA及VB的一些正则表达式使用例子

    在编程领域,正则表达式(Regular Expression)是一种强大的文本处理工具,用于匹配、查找、替换和提取字符串模式。在JAVA和VB这两种编程语言中,正则表达式都是不可或缺的一部分,尤其是在处理数据验证、文本分析和...

    正则表达式获取网页HTML,css,js,图片等

    提取JS时,可以使用如下的正则:`["']([^"']+)["'][^&gt;]*&gt;`来获取外部脚本的URL,或者提取内联脚本的内容。 4. **图片资源提取**: 图片是网页的重要组成部分。在HTML中,图片由`&lt;img&gt;`标签表示,其`src`属性指向...

    正则+url获取指定网站数据信息

    本篇将详细讲解如何利用Java编程语言,结合正则表达式和URL来获取指定网站的数据信息。 首先,我们需要了解URL。URL是互联网上资源的唯一地址,它包含了协议类型(如http或https)、服务器地址、路径以及可能的查询...

    Java常用的一些正则表达式

    Java正则表达式是编程语言Java中用于处理字符串的强大工具,它允许我们通过模式匹配来验证、提取或替换文本。在Java中,正则表达式是通过`java.util.regex`包中的类和接口实现的,如`Pattern`、`Matcher`和`...

    正则表达式解析出页面所有链接,并得到链接的内容

    `Main1.java`可能是程序的入口点,它可能负责读取网页,调用正则表达式进行匹配,然后启动多个`SpiderThread`来并发地获取链接的内容。每个`SpiderThread`则负责处理一个链接,发送HTTP请求并读取响应。 总结来说,...

    正则函数提取图片地址

    在这个“正则函数提取图片地址”的例子中,我们主要关注如何使用正则表达式来从HTML文本中提取出图片的URL地址。这对于网页解析、数据抓取或者内容管理等场景尤其有用。 首先,我们要理解HTML中的图片标签`&lt;img&gt;`的...

    java获取网网页中出现的图片及判断网页代码中是否包含有效图片

    在Java中,可以利用`java.net.URL`和`java.net.URLConnection`类来访问和读取网页内容,再通过正则表达式匹配图片链接。以下是一种基本的实现方式: 1. **使用URL类访问网页**:首先,需要使用`java.net.URL`类创建...

    java_zhengze.rar_正则表达式_正则表达式 java

    正则表达式是编程语言中用于模式匹配和字符串处理的强大工具,在Java中也不例外。Java的正则表达式功能强大,可以用于验证输入、提取信息、替换文本等多种场景。本资料"java_zhengze.rar"提供了对Java正则表达式的...

    JavaScript正则获取地址栏中参数的方法

    JavaScript正则获取地址栏中参数的方法主要阐述了如何通过正则表达式在JavaScript中获取URL地址栏参数值的技巧。这一方法在Web开发中十分实用,尤其是在处理动态地址时,我们经常需要获取某些特定的查询参数值。通过...

    java正则表达式详解(PDF)

    - **String类的matches(), replaceAll(), replaceFirst()**:直接在字符串对象上进行正则匹配和替换操作。 3. **预定义字符类** - `\d`:匹配任何数字(等同于[0-9])。 - `\D`:匹配任何非数字字符(等同于[^0-...

Global site tag (gtag.js) - Google Analytics