4567tv 爬虫技术技术知多少

栏目:美食 2021-09-20 12:17:26
分享到:

简介:网络爬虫是一种很好的自动收集数据的通用手段。本文将介绍爬行动物的种类。

聚焦网络爬虫是一种“面向特定主题需求”的爬虫程序,而通用网络爬虫是搜索引擎爬行系统的重要组成部分,其主要目的是将互联网上的网页本地下载,形成互联网内容的镜像备份。

增量捕获是指捕获某个站点的数据。当网站的新数据或网站的数据发生变化时,它会自动捕获新添加或更改的数据。

网页根据其存在可以分为表层页面和深层页面。

Surface Web页面是指传统搜索引擎可以索引的页面,即主要由超链接可以到达的静态网页组成的网页。

深度网页是那些内容无法通过静态链接获取,隐藏在搜索表单后面,只能通过用户提交一些关键词来获取的网页。

01聚焦爬虫技术

聚焦网络爬虫又称主题网络爬虫。聚焦爬虫技术增加了链接评价和内容评价模块,其爬行策略的关键点是评价页面内容和链接的重要性。

基于链接评价的爬行策略主要是将网页作为半结构化文档,其中有大量的结构信息来评价链接的重要性。还有一种利用Web结构评估链接价值的方法,即HITS方法,通过计算每个被访问页面的Authority权重和Hub权重来确定链接访问顺序。

基于内容评价的爬行策略主要应用与文本相似的计算方法,提出了以用户输入的查询词为主题的Fish-Search算法。随着算法的进一步改进,Shark-Search算法可以利用空之间的向量模型来计算页面和主题之间的相关性。

面向主题的爬虫,面向需求的爬虫:它为特定的内容抓取信息,并确保信息和需求尽可能相关。下面是一个使用聚焦爬虫的简单例子。

一个简单的抓取图片的聚焦爬虫

通用爬行动物技术

通用爬虫技术也被称为全网爬虫。实现过程如下。

首先,获取初始网址。初始网址可以由用户手动指定,也可以由用户指定的一个或几个初始抓取网页来确定。

第二,根据初始网址抓取页面,得到一个新的网址。获取初始网址后,需要先在对应的网址中抓取网页,然后将网页存储在原始数据库中,在抓取网页的同时发现新的网址,并将抓取的网址存储在网址列表中进行去重,判断抓取过程。

第三,将新的网址放入网址队列。在第二步中获得下一个新的网址后,新的网址将被放入网址队列。

第四,从网址队列中读取新的网址,根据新的网址对网页进行抓取,从新的网页中获取新的网址,重复抓取过程。

第五,当满足爬虫系统设置的停止条件时,停止爬行。编写爬虫时,通常会设置相应的停止条件。如果未设置停止条件,爬网程序将进行爬网,直到无法获得新的网址。如果设置了停止条件,当满足停止条件时,爬网程序将停止爬网。详见图2-5右下方子图。

通用爬虫技术的应用有不同的爬行策略,其中广度优先策略和深度优先策略是关键。例如,深度优先策略的实现是按照深度从低到高的顺序访问下一级web链接。

一般爬虫使用的例子如下。

爬行JD.COM商品信息

03增量式爬虫技术

有些网站会根据原始网页数据定期更新一批数据。比如电影网站会实时更新一批近期热门电影,小说网站会根据作者创作进度实时更新最新章节数据。遇到类似场景时,可以使用增量爬虫。

增量爬虫技术是通过爬虫程序监控网站的数据更新,从而抓取网站更新的新数据。

对于如何进行增量爬行,给出了以下三种检测重复数据的思路:

发送请求前,确定是否已对此网址进行爬网;

分析内容后,判断这部分内容是否已被抓取;

当写入存储介质时,判断介质中是否已经存在内容。

第一种思路适合不断有新页面的网站,比如小说新篇章、每日实时新闻;

第二种思路适合页面内容会定期更新的网站;

第三种思维方式相当于最后一道防线。通过这样做,我们可以最大限度地实现重复数据消除的目标。

不难发现,增量爬行的核心是重复数据删除。目前,有两种重复数据删除方法。

首先,爬行过程中生成的URL存储在Redis的集合中。下一次进行数据抓取时,首先在存储URL的集合中判断待发起请求对应的URL,如果存在,则不进行请求,否则进行请求。

其次,制定被抓取网页内容的唯一标识符,然后将该唯一标识符存储在Redis集合中。下次抓取网页数据时,在持久化存储之前,可以判断Redis的集合中是否存在数据的唯一标识符,然后决定是否持久化。

下面显示了一个如何使用增量爬网程序的示例。

在4567电视网站上搜索所有电影细节

管道文件:

04深度网络爬虫技术

在互联网中,网页可以分为两种类型:表层网页和深层网页。

所谓表面网页,是指不提交表单,使用静态链接即可到达的静态页面;深层网页隐藏在表单背后,无法通过静态链接直接获取。只有在提交某些关键词后才能获得。深度网络爬虫最重要的部分是表单填充部分。

在互联网中,深层网页的数量往往比表层网页的数量要大得多,因此我们需要找到抓取深层网页的方法。

深度网络爬虫的基本组件是URL列表、LVS列表、爬虫控制器、解析器、LVS控制器、表单分析器、表单处理器和响应分析器。

深度网络爬网程序有两种形式:

基于领域知识的表单填写;

基于网页结构分析的表单填写。

作者简介:赵,哈尔滨师范大学教授,工学博士,硕士研究生导师,黑龙江省网络安全技术领域特殊人才。主要从事可信网络、入侵容忍、认知计算、物联网安全等领域的教学和科研工作。

本文节选自Python网络爬虫技术与实战,经发布者授权。