java爬虫(一)

xiaoxiao2021-02-28  50

说明:

最近对爬虫感兴趣了,所以就私下里做了个爬虫来玩,所以在这里简单记录一下开发过程,希望能对感兴趣的小伙伴们有用。如有不足,请给予建议。 目标:

某联(https://sou.zhaopin.com/jobs/searchresult.ashx?jl=北京&sm=0&p=1) 至于为什么选择这个网站呢?为什么不选某宝、某东呢? 其实很简单,因为现在有很多大型网站都有反爬虫策略,对于新手来说,如果不清楚如何破解这些反爬虫策略就会轻易的上这些网站的黑名单,导致很多人都懵逼了。还有一个原因就是简单了。

技术选型:

java+HttpClient+Jsoup+redis;

原理分析:

如果之前有了解过爬虫的同学就会发现,现在其实有很多成型的爬虫框架,例如WebCollector,Webmagic,甚至python的scrapy都是相当之经典,顺便给大家简单介绍一下scrapy的设计原理。 引擎(Engine): 用来处理整个系统的数据流处理, 触发事务(框架核心) 调度器(Scheduler): 用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址 下载器(Downloader): 用于下载网页内容, 并将网页内容返回给调度器 爬虫(Spiders): 爬虫是主要干活的, 用于从特定的网页中提取自己需要的信息, 即所谓的实体(Item)。 用户也可以从中提取出链接,让框架继续抓取下一个页面 项目管道(Pipeline): 负责处理爬虫从网页中抽取的实体,主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。 当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据。 详见:https://www.wjx.top/jq/23149027.aspx

在这里我就简化一下,就俩操作:下载+解析。

代码区:

需要引入的jar包:

<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.2</version> </dependency> <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.10.2</version> </dependency>

一、下载页面信息:

经过研究发现页面中的基本信息都由这个链接请求而来

下载页面的方法有很多但究其根源都是一样的,今天先介绍一种:

String url ="https://sou.zhaopin.com/jobs/searchresult.ashx?jl=
转载请注明原文地址: https://www.6miu.com/read-2602667.html

最新回复(0)