import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
/**
* *
*
* @param args
*/
public static void main(String[] args) {
try {
URL url = new URL("http://www.sina.com.cn");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
InputStream in = null;
in = url.openStream();
String content = pipe(in, "gbk");
System.out.println(content);
String regex = "<(a|A)(\\s|\\w|\\.|/|#|\\?|\\&|\\=|%|:|,|;|-|\\)|\\(|\'|\")*>";
java.util.regex.Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(content);
while(matcher.find()) {
System.out.println(matcher.group());
System.out.println(getURL(matcher.group()));
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static String getURL(String content) {
String result = "";
int l = 0;
int s = 0;
int e = 0;
l = content.length();
content = content.toLowerCase();
s = content.indexOf("href=\"") + 6;
e = content.indexOf("\" ", s);
if(e == -1) {
e = content.indexOf("\">", s);
}
if(s > 0 && e > s) {
result = content.substring(s, e);
}
return result;
}
public static String pipe(InputStream in, String charset) throws IOException {
StringBuffer s = new StringBuffer();
if (charset == null || "".equals(charset)) {
charset = "utf-8";
}
String rLine = null;
BufferedReader bReader = new BufferedReader(new InputStreamReader(in,
charset));
PrintWriter pw = null;
FileOutputStream fo = new FileOutputStream("../index.html");
OutputStreamWriter writer = new OutputStreamWriter(fo, "utf-8");
pw = new PrintWriter(writer);
while ((rLine = bReader.readLine()) != null) {
String tmp_rLine = rLine;
int str_len = tmp_rLine.length();
if (str_len > 0) {
s.append(tmp_rLine);
pw.println(tmp_rLine);
pw.flush();
s.append("\n");
}
tmp_rLine = null;
}
in.close();
pw.close();
return s.toString();
}
}
分享到:
相关推荐
在本文中,我们将深入探讨如何使用Go语言(Golang)原生库来实现一个简单的网络爬虫。Go语言因其高效、简洁的语法和强大的并发能力,成为开发爬虫的热门选择。我们将通过一个具体的代码实例来阐述这个过程。 首先,...
本项目“实现的一个简单爬虫”旨在介绍如何构建一个基础的网络爬虫,帮助初学者理解爬虫的基本原理和实现步骤。通过阅读提供的博文链接(https://wxwall.iteye.com/blog/1729178),我们可以深入学习这个话题。 ...
在IT行业中,网络爬虫是...这只是一个基础的爬虫实现,实际的网络爬虫可能需要处理更多复杂情况,例如数据存储、多线程爬取、错误处理等。但这个例子为初学者提供了一个良好的起点,帮助他们了解爬虫的基本原理和实践。
【简易网络爬虫的实现】是一个关于编程领域,特别是针对网络数据抓取的项目。网络爬虫,也称为网页蜘蛛,是一种自动浏览互联网并提取网页信息的程序。在这个项目中,我们将探讨如何构建一个简单的网络爬虫,它能解析...
### 基于Python爬虫原理的篮球鞋选择程序的设计与实现 #### 1. 相关概念 ##### 1.1 网络爬虫基本概念 网络爬虫是一种自动化程序,它按照预设的规则自动抓取互联网上的信息。这种技术常用于搜索引擎的数据收集,但...
下面将详细介绍如何用C#语言实现一个简单的网络爬虫。 首先,需要定义两个集合:待下载集合和已下载集合。待下载集合用来存放需要下载的URL,同时防止重复下载。已下载集合用来存放已经下载的URL。为了保存URL同时...
一、绪论 在当今信息化社会,网络数据的海量增长为信息获取带来了挑战,而Web爬虫作为自动提取网络信息的重要...通过深入学习,读者将能够掌握Web爬虫的核心概念,理解其工作流程,并具备设计和实现爬虫项目的能力。
Python爬虫简单实现 在信息技术日益发达的今天,数据挖掘和网络信息的获取变得越来越重要。Python作为一种功能强大且易学的语言,因其丰富的库支持,成为实现网络爬虫的首选工具。本篇将深入探讨如何使用Python进行...
Python简单爬虫的实现主要涉及以下几个关键知识点: 1. **HTTP和HTTPS协议**:网络爬虫是通过HTTP或HTTPS协议与服务器进行交互的。HTTP是超文本传输协议,用于从万维网服务器传输超文本到本地浏览器。HTTPS是HTTP的...
【简易爬虫程序源码】是一种基础的网络爬虫实现,它主要利用.NET框架中的`WebRequest`和`HttpWebResponse`类来与服务器进行交互,获取网页的HTML源代码。在这个过程中,开发者通常会编写代码来模拟用户浏览网页的...
本文将深入探讨如何使用Java实现一个简单的多线程爬虫,包括其核心概念、步骤以及相关的库和工具。 首先,我们需要了解爬虫的基本原理。爬虫是一种自动抓取网页内容的程序,通过模拟浏览器发送HTTP请求到服务器,...
网络爬虫的原理 网络爬虫是按照一定的规则,自动抓取网络上的程序,可以模拟人工登录网页的方式,获取页面上的内容,并进行存储。网络爬虫的爬行策略分为深度优先和广度优先。 写网络爬虫的原因有三个: 第一...
这个"搜索引擎大揭密"的项目不仅展示了爬虫的基本工作原理,还揭示了如何使用Java技术构建一个简易的搜索系统,这对于学习和理解相关技术具有重要意义。在实际应用中,还需要考虑更多因素,如反爬策略、性能优化、...
这些项目将让你深入理解爬虫工作原理,并提高实际操作能力。 总的来说,"四周实现爬虫网站"课程旨在让你快速掌握网络爬虫的基本技能,具备独立编写爬虫程序的能力,从而能够有效地从互联网上获取和处理数据。无论你...
### 基于Python的网络爬虫简单实现 #### 一、网络爬虫技术概览 ##### 1.1 网络爬虫的基本概念 网络爬虫(Web Crawler),也被称作网络蜘蛛或机器人,是一种自动化工具,用于访问互联网上的网页并从中抓取数据。...
实验旨在让学生掌握网络爬虫的基本原理和操作,通过爬取东华理工大学官网首页的数据初步了解爬虫工作方式,然后进一步利用Python爬虫从百度地图开发者平台获取湖南省衡阳市的火锅店POI信息,最后通过ArcGIS进行数据...
接下来,"网络爬虫实现原理及详解JCF2011-11-17.doc"可能深入讨论爬虫的工作原理,包括URL管理(如何跟踪已访问和待访问的页面)、网页下载、HTML解析、数据存储以及爬虫的调度策略(如深度优先搜索和广度优先搜索)...
网络爬虫,也被称为网页蜘蛛或网络机器人,是自动化地浏览互联网并抓取网页...通过阅读和理解代码,你将更深入地了解网络爬虫的工作原理和实现细节。同时,不断实践和优化,你将能够构建更复杂、功能更强大的爬虫系统。
总的来说,这个项目结合了网络爬虫技术、搜索引擎原理以及Java编程,涵盖了从数据获取到处理、存储再到检索的全过程。对于学习和理解整个信息检索系统的运作机制,是一个很好的实践案例。在实际开发中,我们还需要...