java写一个简单网页_教你用Java手动写一个简单的网络爬虫

原标题:教你用Java手动写一个简单的网络爬虫

“爬虫”这个词大家经常听到,但它是什么意思?又是用来做什么的呢?下面就由万和的专业老师来分享一下关于网络爬虫的入门知识。

0 1

网络爬虫

1.1. 名称

网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。

另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

1.2. 简述

网络爬虫是通过网页的链接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。

如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来。

所以要想抓取网络上的数据,不仅需要爬虫程序还需要一个可以接受”爬虫“发回的数据并进行处理过滤的服务器,爬虫抓取的数据量越大,对服务器的性能要求则越高。

0 2

流程

网络爬虫是做什么的? 他的主要工作就是跟据指定的url地址去发送请求,获得响应, 然后解析响应 , 一方面从响应中查找出想要查找的数据,另一方面从响应中解析出新的URL路径,然后继续访问,继续解析;继续查找需要的数据和继续解析出新的URL路径 。

这就是网络爬虫主要干的工作. 下面是流程图:

2c3197d5ce47618d1795c5fec05577ec.png

通过上面的流程图能大概了解到网络爬虫干了哪些活 ,根据这些也就能设计出一个简单的网络爬虫出来。

一个简单的爬虫必需的功能包括:

发送请求和获取响应的功能 ;

解析响应的功能 ;

对过滤出的数据进行存储的功能 ;

对解析出来的URL路径处理的功能 ;

2.1. 关注点

爬虫需要关注的三个点:

对抓取目标的描述或定义;

对网页或数据的分析与过滤;

对URL的搜索策略。

0 3

分类

网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:

通用网络爬虫(General Purpose Web Crawler)

聚焦网络爬虫(Focused Web Crawler)

增量式网络爬虫(Incremental Web Crawler)

深层网络爬虫(Deep Web Crawler)。

实际的网络爬虫系统通常是几种爬虫技术相结合实现的。

0 4

思路分析

下面我用我们的官网将跟大家一起来分析下如何实现这样的一个爬虫:

9b100fa91464bde3b424a4c097d1fe22.png

首先观察我们爬虫的起始页面是:http://www.wanho.net/a/jyxb/

分析页面:

bcc55c2118f9089c2d069d778e68b33f.png

所有的喜报信息的URL用XPath表达式来表示就是://div[@class='main_l']/ul/li

13ff969e8c41ccb0f63aa3aa7cebf39d.png

相关数据:

标题:用XPath表达式来表示 //div[@class='content']/h4/a/text()

描述:用XPath表达式来表示//div[@class='content']/p/text()

图片:用XPath表达式来表示 //a/img/@src

好了,我们上面已经将在代码中需要获取的关键信息的XPath表达式都找到了,接下来就可以正式写代码来实现了

0 5

代码实现

代码实现部分采用webmagic框架,因为这样比使用基本的的Java网络编程要简单得多。

5.1. 代码结构

24d0dc641638acbbbb107c81ac8bcea1.png

5.2. 程序入口

Demo.java

cc0db9444c31a4b245f7d1a167ce22d3.png

5.3. 爬取过程

WanhoPageProcessor.java

2f5f5c0e2a71f04df3b2ee9be6d4a087.png

5.4. 结果保存

WanhoPipeline.java

df11c947e771351f16aa8d4b001859d2.png

5.5. 模型对象

ArticleVo.java

56387a8bfd7ed28ef0b75b211c162e7b.png

如果你想了解更多关于网络爬虫的知识,可以,进入万和官网,注册后即可免费学习Java爬虫项目实战。

面对面专业指导

手把手从零开始

进入IT高薪圈

从这里开始

免费学习爬虫点这里 返回搜狐,查看更多

责任编辑:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值