java爬虫抓取网页数据(什么是网络爬虫?网络蜘蛛的实现原理根据这种原理 )

优采云 发布时间: 2022-03-19 04:12

  java爬虫抓取网页数据(什么是网络爬虫?网络蜘蛛的实现原理根据这种原理

)

  什么是网络爬虫?网络爬虫也称为蜘蛛。网络蜘蛛通过网页的链接地址搜索网页,从网站的一个页面(通常是首页)开始,读取网页内容,找到网页中的其他链接地址,然后通过这些链接地址找到下一个网页,以此类推,直到这个网站的所有网页都被爬取完毕。如果把整个互联网看成一个网站,那么网络蜘蛛就可以利用这个原理爬取互联网上的所有网页。因此,为了在网络上抓取数据,不仅是爬虫程序,还有一个服务器,它可以接受“爬虫”发回的数据,并对其进行处理和过滤。爬虫爬取的数据量越大,对服务器的性能要求就越高。.

  网络爬虫实现原理

  根据这个原理,编写一个简单的网络爬虫程序,这个程序的作用是获取网站发回的数据,并提取其中的URL。我们将获取的 URL 存储在一个文件夹中。只需从 网站 获得的 URL 进一步循环,即可获取数据并从中提取其他数据。这里就不写了,只是模拟一个最简单的原理。实际的 网站 爬虫远比这复杂。太多了,无法深入讨论。除了提取URL之外,我们还可以提取我们想要的各种其他信息,只要我们修改过滤数据的表达式即可。下面是一个用Java模拟的程序,用来提取新浪网页上的链接,并保存在一个文件中

  源代码

  import java.io.BufferedReader;

import java.io.FileWriter;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.MalformedURLException;

import java.net.URL;

import java.net.URLConnection;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class WebSpider {

public static void main(String[] args) {

URL url = null;

URLConnection urlconn = null;

BufferedReader br = null;

PrintWriter pw = null;

String regex = "http://[\\w+\\.?/?]+\\.[A-Za-z]+";

Pattern p = Pattern.compile(regex);

try {

url = new URL("http://www.sina.com.cn/");

urlconn = url.openConnection();

pw = new PrintWriter(new FileWriter("e:/url.txt"), true);//这里我们把收集到的链接存储在了E盘底下的一个叫做url的txt文件中

br = new BufferedReader(new InputStreamReader(

urlconn.getInputStream()));

String buf = null;

while ((buf = br.readLine()) != null) {

Matcher buf_m = p.matcher(buf);

while (buf_m.find()) {

pw.println(buf_m.group());

}

}

System.out.println("获取成功!");

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

br.close();

} catch (IOException e) {

e.printStackTrace();

}

pw.close();

}

}

}

  在 Eclipse 中运行的结果

  

  底部显示收购成功!接下来我们到E盘根目录下找到url.txt。看看有没有这个文件

  

  接下来,我们打开txt文件,找到一系列URL链接。这些都是我们爬取新浪首页得到的网址

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线