1.爬虫的主要类型
网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫。 实际的网络爬虫系统通常是几种爬虫技术相结合实现的。
(1)通用网络爬虫
通用网络爬虫又称全网爬虫(Scalable Web Crawler),爬行对象从一些种子 URL 扩充到整个 Web,主要为门户站点搜索引擎和大型 Web 服务提供商采集数据。
(2)聚焦网络爬虫
聚焦网络爬虫,又称主题网络爬虫,是指选择性地爬行那些与预先定义好的主题相关页面的网络爬虫。和通用网络爬虫相比,聚焦爬虫只需要爬行与主题相关的页面,极大地节省了硬件和网络资源,保存的页面也由于数量少而更新快,还可以很好地满足一些特定人群对特定领域信息的需求。是我们应该重点关注的爬虫类型。
(3)增量式网络爬虫
增量式网络爬虫是指对已下载网页采取增量式更新和只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面。和周期性爬行和刷新页面的网络爬虫相比,增量式爬虫只会在需要的时候爬行新产生或发生更新的页面 ,并不重新下载没有发生变化的页面,可有效减少数据下载量,及时更新已爬行的网页,减小时间和空间上的耗费,但是增加了爬行算法的复杂度和实现难度。
(4)深层页面爬虫
Web页面按存在方式可以分为表层网页和深层网页。表层网页是指传统搜索引擎可以索引的页面,以超链接可以到达的静态网页为主构成的Web页面。深层网页是那些大部分内容不能通过静态链接获取的、隐藏在搜索表单后的,只有用户提交一些关键词才能获得的 Web页面。例如那些用户注册后内容才可见的网页就属于深层网页。
2.爬虫的法律问题
(1)不能触碰的红线
目前,多数网站允许将爬虫爬取的数据用于个人使用或者科学研究。但如果将爬取的数据用于其他用途,尤其是转载或者商业用途,严重的将会触犯法律或者引起民事纠纷。
个人信息、商业秘密与国家秘密是数据爬取的红线。
个人隐私数据:如姓名、手机号码、年龄、血型、婚姻情况等,爬取此类数据将会触犯个人信息保护法。
明确禁止他人访问的数据:例如用户设置了账号密码等权限控制,进行了加密的内容。
还需注意版权相关问题,有作者署名的受版权保护的内容不允许爬取后随意转载或用于商业用途。
(2)君子协定robots协议
当使用一个爬虫爬取一个网站的数据时,需要遵守网站所有者针对所有爬虫所制定的协议,这便是robot.txt协议。
该协议通常存放在网站根目录下,里面规定了此网站那些内容可以被爬虫获取,及哪些网页是不允许爬虫获取的。
如输入https://www.baidu.com/robots.txt,以下呈现的是百度的robots协议
3.简单网络爬虫框架
url管理器:管理要爬取的URL,防止重复抓取
网页下载器:下载网页的组件,是爬虫的核心部分之一。用来将互联网上的URL对应的网页下载到本地。
网页解析器:解析网页的组件,是爬虫的另一个核心部分。从网页中提取有价值数据。
输出管理器:保存信息的组件。将解析出的内容输出到文件或数据库中。
4.网络相关的库