Java爬虫(二)
Jsoup 是一款 Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据,本篇博客将主要针对jsoup技术进行数据爬取,而且为了提高效率我们将采用多线程的方式进行数据的读取
爬取入口
我们就随便找个网站进行爬取吧,原理都一样,比如我们爬取一个国家统计局的数据,首先我们找到所爬取网站的页面如下:
比如我就爬天津市的数据,找到要爬取的网站页面入口为:
爬取思路
从上图可以看出我们的基本大概思路和流程,但是由于网站的多变性我们不能冒然爬取,造成数据冗余,此网页最后一层网页只有文本信息以外,其余的网页都是一条文本信息对应一个文本信息对应一个URL地址,并且出最后一层之外,每一层的数字和文本信息对应的URL是相同的,所以我们只爬取名称就行了,如下:
开始爬取
注意我们下面Document导包路径都为:
1.简单的创建一个maven项目
2.在pom.xml文件中添加如下依赖
3.创建主类
主类中定义全局共享的URL队列,同时定义Runnable实现类所要使用的核心控制模块的对象,使用固定线程池进行线程调度管理,以及根URL的定义以及入队列
4.创建Runnable实现类
通过此实现类不断调用核心控制类WormCore的方法,进行数据的爬取
5.核心控制类
此类就是我们上面说的核心控制类,首先将URI队列队弹出发送给网页抓取模块从而获取Document,其次将获取的Document发送给网页解析模块提取URL和文本信息,最后将信息的HashMap交给数据处理模块获取网页中所有的URL并再加入URL队列
6.网页抓取模块
根据核心控制类传来的URL获取Document并返回,自行设置超时时间以及超时之后的操作
7.网页解析模块
由于最后的页面和前面的页面不同,所以需要因地制宜,我们抛出了之前说的统计用区划代码数字,只要名称,所以博主通过下面的Number类里面的方法进行了判断
8.判断是否为数字
9.数据处理模块
将HashMap中保存URL的集合提取出来进行保存
10.最后运行结果如下:
结语:对于爬虫有多种方式,不同的方式存在着代码简明、爬取效率等各种差异,所以对于爬取数据应该要因地制宜
到此这篇java爬虫教学(java爬虫步骤)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/jjc/11691.html