java爬虫抓取网页数据(网络爬虫(又被称为网页蜘蛛,网络机器人() )

优采云 发布时间: 2021-11-01 10:11

  java爬虫抓取网页数据(网络爬虫(又被称为网页蜘蛛,网络机器人()

)

  网络爬虫

  网络爬虫(也称为网络蜘蛛、网络机器人,在 FOAF 社区中,更常见的是网络追逐)是按照某些规则自动抓取万维网上信息的程序或脚本。

  其他不太常用的名称是蚂蚁、自动索引、模拟器或蠕虫。网络蜘蛛通过网页的链接地址搜索网页,从某个页面(通常是首页)开始,阅读

  对于网页的内容,找到网页中的其他链接地址,然后通过这些链接地址找到下一个网页,如此循环下去,直到这个网站的所有网页都被爬取。如果整个

  把互联网想象成一个网站,那么网络蜘蛛就可以利用这个原理抓取互联网上的所有网页。所以如果要抓取互联网上的数据,不仅需要一个爬虫程序,还需要一个

  对于接收“爬虫”发回的数据并进行处理和过滤的服务器,爬虫抓取的数据量越大,对服务器的性能要求就越高。

  1 关注爬虫工作原理及关键技术概述

  网络爬虫是一种自动提取网页的程序。它从万维网下载网页以供搜索引擎使用。它是搜索引擎的重要组成部分。传统爬虫从一个或几个初始网页的URL开始,获取

  URL,在抓取网页的过程中,不断地从当前页面中提取新的URL并放入队列中,直到满足系统的某个停止条件。聚焦爬虫的工作流程比较复杂,需要一定的网页分析

  该算法过滤与主题无关的链接,保留有用的链接并将它们放入URL队列中等待被抓取。然后,它会根据一定的搜索策略从队列中选择要抓取的网页的网址,并重复上传

  该过程将停止,直到达到系统的某个条件。另外,爬虫爬过的所有网页都会被系统存储起来,进行一定的分析、过滤和索引,以供以后查询检索;

  对于焦爬虫来说,这个过程中得到的分析结果,也可以为后续的爬虫过程提供反馈和指导。

  

  与一般网络爬虫相比,聚焦爬虫需要解决三个主要问题:

  (1) 爬取目标的描述或定义;

  (2) 对网页或数据的分析和过滤;

  (3) URL 搜索策略。

  分类

  根据系统结构和实现技术,网络爬虫大致可以分为以下几类:通用网络爬虫、聚焦网络爬虫、

  增量网络爬虫,深网爬虫。实际的网络爬虫系统通常是通过多种爬虫技术的组合来实现的。

  网络爬虫的实现原理

  根据这个原理,编写一个简单的网络爬虫程序。该程序的作用是获取网站发回的数据,并在该过程中提取URL。获取的 URL 存储在文件夹中。如何从网络上

  本站获取的网站会进一步循环获取数据和提取其他数据。我不会在这里写。只能模拟最简单的原理。实际的网站爬虫比这里复杂很多,深入讨论的也太多了。

  NS。除了提取URL,我们还可以提取我们想要的各种其他信息,只要我们修改过滤数据的表达式即可。下面是一个使用Java模拟提取新浪页面上的链接并存储的程序

  在一个文件中

  源代码如下

  package com.cellstrain.icell.util;

import java.io.*;

import java.net.*;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

/**

* java实现爬虫

*/

public class Robot {

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]+";

String regex = "https://[\\w+\\.?/?]+\\.[A-Za-z]+";//url匹配规则

Pattern p = Pattern.compile(regex);

try {

url = new URL("https://www.rndsystems.com/cn");//爬取的网址、这里爬取的是一个生物网站

urlconn = url.openConnection();

pw = new PrintWriter(new FileWriter("D:/SiteURL.txt"), true);//将爬取到的链接放到D盘的SiteURL文件中

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

}

}

}

  在idea中运行结果如下:

  

  检查D盘是否有SiteURL.txt文件

  

  SiteURL 文件已成功生成。打开它可以看到所有爬取的url。

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线