什么是爬虫?
爬虫是一种用来将网页上的数据进行筛选并进行保存的一种采集方式。普通用户的浏览器引擎搜索也是一种爬虫,它是大多数人使用的通用爬虫,它追求覆盖全网范围,但是检索的信息量巨大有很多我们所不需要的信息数据,于是聚焦爬虫应运而生,相对于通用爬虫,它更加具有针对性的批量的进行筛选并保存在指定位置,即使用它可以更加有针对性的采集数据。
爬虫的分类
==通用网络爬虫(General Purpose Web Crawler)==又被称为全网爬虫(Scalable Web Crawler),爬行对象从一些种子 URL 扩充到整个 Web,主要为门户站点搜索引擎和大型Web 服务提供商采集数据。 由于商业原因,它们的技术细节很少公布出来。 这类网络爬虫的爬行范围和数量巨大,对于爬行速度和存储空间要求较高,对于爬行页面的顺序要求相对较低,同时由于待刷新的页面太多,通常采用并行工作方式,但需要较长时间才能刷新一次页面。 虽然存在一定缺陷,通用网络爬虫适用于为搜索引擎搜索广泛的主题,有较强的应用价值。而且通用爬虫必须遵循 ROBOT 协议----是一种约定的规范;针对通用爬虫进行
的数据采集限制。
聚焦网络爬虫(Focused Crawler),又被称为主题网络爬虫(Topical Crawler)或者定向爬虫,是指选择性地爬行那些与预先定义好的主题相关页面的网络爬虫。 和通用网络爬虫相比,聚焦爬虫只需要爬行与主题相关的页面,极大地节省了硬件和网络资源,保存的页面也由于数量少而更新快,还可以很好地满足一些特定人群对特定领域信息的需求。增量式网络爬虫(Incremental Web Crawler)是指对已下载网页采取增量式更新和只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面。和周期性爬行和刷新页面的网络爬虫相比,增量式爬虫只会在需要的时候爬行新产生或发生更新的页面 ,并不重新下载没有发生变化的页面,可有效减少数据下载量,及时更新已爬行的网页,减小时间和空间上的耗费,但是增加了爬行算法的复杂度和实现难度。增量式网络爬虫的体系结构[包含爬行模块、排序模块、更新模块、本地页面集、待爬行 URL 集以及本地页面 URL 集等。
==累积式爬虫(Cumulative Crawler)==类似于增量式爬虫,但是增量式爬虫爬取数据的时候,如果之前爬取的数据发生变化,则重新爬取,而累计式抓取则不会。累积式爬虫是指从某一个时间点开始,通过遍历的方式抓取系统所能允许存储和处理的所有网页。在理想的软硬件环境 下,经过足够的运行时间,累积式抓取的策略可以保证抓取到相当规模的网页集合。但由于 Web 数据的动态特性,集合中网页的被抓取时间点是不同的,页面被更新的情况也不同,因此累积式抓取到的网页集合事实上并无法与真实环境中的网络数据保持一致
Deep Web 爬虫:Web 页面按存在方式可以分为表层网页(Surface Web)和深层网页(Deep Web,也称 Invisible Web Pages 或 Hidden Web)。 表层网页是指传统搜索引擎可以索引的页面,以超链接可以到达的静态网页为主构成的 Web 页面。Deep Web 是那些大部分内容不能通过静态链接获取的、隐藏在搜索表单后的,只有用户提交一些关键词才能获得的 Web 页面。例如那些用户注册后内容才可见的网页就属于 Deep Web。 2000 年 Bright Planet 指出:Deep Web 中可访问信息容量是 Surface Web 的几百倍,是互联网上最大、发展最快的新型信息资源。
这是使用python写的一个爬虫代码。
import urlib.request //导入网络库
url = “http://www.sina.com.cn” //url是新浪的地址
response = urllib.request.urlopen(url) //获取url的地址里的信息,将信息传递给变量data
print(data) //打印所获取到的信息
with open(“sina.html”,“wb”) as f: //以字节数据保存在新建文档sina.html中,后缀名为htm,l打开后以浏览器打开
f.write(data) //写入data数据到sina.html
print(“采集完成”)
运行这个python程序之后会的到一个名为sina.html的文档,打开文档就是采集到的新浪首页
这就是最简单的爬虫采集
python爬虫
最新推荐文章于 2022-02-16 10:28:05 发布