c爬虫抓取网页数据(利用Java模拟的一个程序,聚焦爬虫工作原理以及关键技术 )
优采云 发布时间: 2021-09-20 21:32c爬虫抓取网页数据(利用Java模拟的一个程序,聚焦爬虫工作原理以及关键技术
)
网络爬虫网络爬虫(也称为网络蜘蛛、网络机器人,在FOAF社区中更常被称为网络追踪器)是一种程序或脚本,根据特定规则自动获取万维网信息
聚焦爬虫的工作原理及关键技术综述
网络爬虫是一个程序,自动提取网页。它为搜索引擎从万维网下载网页。它是搜索引擎的重要组成部分。传统的爬虫从一个或多个初始网页的URL获取初始网页上的URL。在抓取网页的过程中,它不断地从当前网页中提取新的URL并将其放入队列,直到满足系统的某些停止条件。焦点爬虫的工作流程很复杂。有必要根据特定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待捕获的URL队列中。然后,它将根据一定的搜索策略从队列中选择下一个网页URL,并重复上述过程,直到达到系统的一定条件。此外,爬虫捕获的所有网页将由系统存储、分析、过滤和索引,以便将来查询和检索;对于聚焦爬虫,在这个过程中获得的分析结果也可以为未来的抓取过程提供反馈和指导
与普通网络爬虫相比,焦点爬虫还需要解决三个主要问题:
(1)捕获目标的描述或定义
(2)网页或数据的分析和过滤
(3)URL搜索策略)
网络爬虫的实现原理
根据这一原理,编写一个简单的网络爬虫程序。该程序的功能是获取网站返回的数据并提取网址。获取的网址存储在一个文件夹中。除了提取网址,我们还可以提取我们想要的其他种类的信息,只要我们修改filte的表达式红色数据
下面是一个由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(); } }}