网络爬虫
小草dym
这个作者很懒,什么都没留下…
展开
-
代理的使用
代理的使用有些网站不允许爬虫进行数据爬取,因为会加大服务器的压力。其中一种最有效的方式是通过ip+时间进行鉴别,因为正常人不可能短时间开启太多的页面,发起太多的请求。使用的WebMagic可以很方便的设置爬取数据的时间(参考第二天的的3.1. 爬虫的配置、启动和终止)。但是这样会大大降低我们爬取数据的效率,如果不小心ip被禁了,会让我们无法爬去数据,那么我们就有必要使用代理服务器来爬取数据...原创 2020-03-23 21:20:58 · 284 阅读 · 0 评论 -
网页去重||SimHash(高效的文本相似度去重算法)——适合大批量文档的相似度计算
网页去重之前我们对下载的url地址进行了去重操作,避免同样的url下载多次。其实不光url需要去重,我们对下载的内容也需要去重。在网上我们可以找到许多内容相似的文章。但是实际我们只需要其中一个即可,同样的内容没有必要下载多次,那么如何进行去重就需要进行处理了去重方案介绍指纹码对比最常见的去重方案是生成文档的指纹门。例如对一篇文章进行MD5加密生成一个字符串,我们可以认为这是文章...原创 2020-03-23 20:56:22 · 2984 阅读 · 0 评论 -
定时任务 || Cron表达式
Spring内置的SpringTask,这是Spring3.0加入的定时任务功能。使用注解的方式定时启动爬虫进行数据爬取。我们使用的是@Scheduled注解,其属性如下:1)cron:cron表达式,指定任务在特定时间执行;2)fixedDelay:上一次任务执行完后多久再执行,参数类型为long,单位ms3)fixedDelayString:与fixedDelay含义一样...原创 2020-03-23 19:49:02 · 244 阅读 · 0 评论 -
三种去重方式——HashSet、Redis去重、布隆过滤器(BloomFilter)
三种去重方式去重就有三种实现方式,那有什么不同呢?HashSet使用java中的HashSet不能重复的特点去重。优点是容易理解。使用方便。缺点:占用内存大,性能较低。Redis去重使用Redis的set进行去重。优点是速度快(Redis本身速度就很快),而且去重不会占用爬虫服务器的资源,可以处理更大数据量的数据爬取。缺点:需要准备Redis服务器,增加开发和使用成本。...原创 2020-03-23 15:17:49 · 3394 阅读 · 0 评论 -
案例开发分析 || Scheduler组件
准备使用WebMagic实现爬取数据的功能。这里是一个比较完整的实现。在这里我们实现的是聚焦网络爬虫,只爬取招聘的相关数据。业务分析今天要实现的是爬取https://www.51job.com/上的招聘信息。只爬取“计算机软件”和“互联网电子商务”两个行业的信息首先访问页面并搜索两个行业。结果如下点击职位详情页,我们分析发现详情页还有一些数据需要抓取:职位、公司名称、工...原创 2020-03-23 14:59:52 · 195 阅读 · 0 评论 -
爬虫分类——通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫
爬虫分类网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫。 实际的网络爬虫系统通常是几种爬虫技术相结合实现的通用网络爬虫通用网络爬虫又称全网爬虫(Scalable Web Crawler),爬行对象从一些种子 URL 扩充到整个 Web,主要为门户站点搜索引擎和大型 Web 服务提供商采集数据。这类网络爬虫的爬行范围...原创 2020-03-23 14:23:54 · 10621 阅读 · 1 评论 -
爬虫的配置、启动和终止
爬虫的配置、启动和终止SpiderSpider是爬虫启动的入口。在启动爬虫之前,我们需要使用一个PageProcessor创建一个Spider对象,然后使用run()进行启动。同时Spider的其他组件(Downloader、Scheduler、Pipeline)都可以通过set方法来进行设置。爬虫配置SiteSite.me()可以对爬虫进行一些配置配置,...原创 2020-03-23 14:13:06 · 370 阅读 · 0 评论 -
WebMagic功能——XPath、CSS选择器、正则表达式 || 抽取元素API、获取结果API || 获取链接||使用Pipeline保存结果
WebMagic功能实现PageProcessor抽取元素SelectableWebMagic里主要使用了三种抽取技术:XPath、正则表达式和CSS选择器。另外,对于JSON格式的内容,可使用JsonPath进行解析。XPathCSS选择器CSS选择器是与XPath类似的语言。它比XPath写起来要简单一些,但是如果写复杂一点的抽取规则,就相对要麻烦一点。正...原创 2020-03-23 14:03:46 · 2869 阅读 · 1 评论 -
WebMagic介绍
学习一款爬虫框架的使用就是WebMagic。其底层用到了HttpClient和Jsoup,能够更方便的开发爬虫。WebMagic项目代码分为核心和扩展两部分。核心部分(webmagic-core)是一个精简的、模块化的爬虫实现,而扩展部分则包括一些便利的、实用性的功能。WebMagic的设计目标是尽量的模块化,并体现爬虫的功能特点。这部分提供非常简单、灵活的API,在基本不改变开发模式的情...原创 2020-03-23 12:08:02 · 346 阅读 · 0 评论 -
Selector选择器概述||Selector选择器组合使用
Selector选择器组合使用原创 2020-03-22 21:55:44 · 495 阅读 · 0 评论 -
使用选择器语法查找元素——Selector选择器概述 ——未完待续
使用选择器语法查找元素jsoup elements对象支持类似于CSS (或jquery)的选择器语法,来实现非常强大和灵活的查找功能。select 方法在Document, Element,或Elements对象中都可以使用。且是上下文相关的,因此可实现指定元素的过滤,或者链式选择访问。Select方法将返回一个Elements集合,并提供一组方法来抽取和处理结果。Selecto...原创 2020-03-20 23:45:34 · 174 阅读 · 0 评论 -
使用dom方式遍历文档||获取元素||从元素中获取数据
使用dom方式遍历文档获取元素根据id查询元素getElementById 根据标签获取元素getElementsByTag 根据class获取元素getElementsByClass 根据属性获取元素getElementsByAttribute元素中获取数据从元素中获取id 从元素中获取className 从元素中获取属性的值attr 从元素中获取所有...原创 2020-03-13 21:11:26 · 177 阅读 · 0 评论 -
Jsoup介绍||jsoup解析url || Jsoup解析字符串||Jsoup解析文件
Jsoup抓取到页面之后,还需要对页面进行解析。可以使用字符串处理工具解析页面,也可以使用正则表达式,但是这些方法都会带来很大的开发成本,所以我们需要使用一款专门解析html页面的技术。jsoup介绍jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据...原创 2020-03-13 20:51:30 · 193 阅读 · 0 评论 -
HttpClient的连接池||HttpClient的请求参数
连接池如果每次请求都要创建HttpClient,会有频繁创建和销毁的问题,可以使用连接池来解决这个问题HttpClientPoolTest.javapackage cn.itcast.crawler.test;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.cl...原创 2020-03-13 19:55:14 · 239 阅读 · 0 评论 -
POST请求||带参数的POST请求
POST请求HttpPostTest.javapackage cn.itcast.crawler.test;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.m...原创 2020-03-13 19:34:39 · 2596 阅读 · 0 评论 -
HttpClient ||GET请求||带参数的GET请求
HttpClient网络爬虫就是用程序帮助我们访问网络上的资源,我们一直以来都是使用HTTP协议访问互联网的网页,网络爬虫需要编写程序,在这里使用同样的HTTP协议访问网页。这里使用Java的HTTP协议客户端 HttpClient这个技术,来实现抓取网页数据。GET请求package cn.itcast.crawler.test;import org.apache.htt...原创 2020-03-13 19:19:28 · 7791 阅读 · 1 评论 -
网络爬虫介绍||为什么学网络爬虫
网络爬虫介绍 在大数据时代,信息的采集是一项重要的工作,而互联网中的数据是海量的,如果单纯靠人力进行信息采集,不仅低效繁琐,搜集的成本也会提高。如何自动高效地获取互联网中我们感兴趣的信息并为我们所用是一个重要的问题,而爬虫技术就是为了解决这些问题而生的。 网络爬虫(Web crawler)也叫做网络机器人,可以代替人们自动地在互联网中进行数据信息的采集与整理。它是一种...原创 2020-03-13 17:43:15 · 408 阅读 · 0 评论 -
网络爬虫(Web crawler)|| 爬虫入门程序
网络爬虫网络爬虫(Web crawler),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本爬虫入门程序环境准备JDK1.8 IntelliJ IDEA IDEA自带的Maven环境准备 1.创建Maven工程itcast-crawler-first并给pom.xml加入依赖、<dependencies> <!-...原创 2020-03-13 17:30:04 · 1616 阅读 · 0 评论