爬虫笔记(一)
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本(参考百度百科)。
一、爬虫分类
爬虫,可分为四大类(通用爬虫、聚焦爬虫、增量式爬虫、深度爬虫)对应不同的需求场景。
- 通用爬虫
通用网络爬虫又称全网爬虫(Scalable Web Crawler),爬行对象从一些种子 URL 扩充到整个 Web,这类网络爬虫的爬行范围和数量巨大,对于爬行速度和存储空间要求较高,对于爬行页面的顺序要求相对较低,通常采用并行的工作方式。
通用网络爬虫的结构通常分为可以分为页面爬行模块 、页面分析模块、链接过滤模块、页面数据库、URL 队列、初始 URL 集合几个部分。
- 聚焦爬虫
聚焦网络爬虫(Focused Crawler),是指选择性地爬行那些与预先定义好的主题相关页面的网络爬虫。 和通用网络爬虫相比,聚焦爬虫只需要爬行与主题相关的页面。聚焦网络爬虫和通用网络爬虫相比,考虑到了爬行策略,根据每个链接的重要性不同,在URL队列中的优先级也会不同。
二、爬行策略
通用爬虫对于URL队列的排序要求可能不是很高,但对于聚焦爬虫则不同。为了节省资源,聚焦爬虫会根据爬行策略,结合预先定义好的爬取主题,对URL队列中的链接进行排序,优先爬取排名靠前的URL链接。常见的爬行策略有:深度优先策略、广度优先策略、大战优先策略、反链策略(根据被其他网页指向的次数来进行优先级判定)、OPIC策略、Partial PageRank策略等。
三、网页更新策略
对于爬取存至数据库的数据,有的内容基本不会有太大变动,但是有的内容可能具有一定的实效性,因此需要根据网页的更新频率对网页内容进行周期性的爬取,保证保存的数据是较新的。常用的网页更新策略主要有:用户体验策略、历史数据策略、聚类分析策略等。
- 用户体验策略
搜索引擎在查询某个关键的时候,会有一个排名结果,排名结果中会有大量的网页,但是,大部分的用户只会关注排名靠前的网页。爬虫会优先更新排名结果考前的网页。这种更新策略,称之为用户体验策略。 - 历史数据策略
爬虫该何时去爬取结果考前的网页?在爬取的过程中,如果保留对应的网页的多个历史版本,并进行对应的分析,依据多个历史版本的内容更新、收索质量影响、用户体验等信息,来确定网页的爬取周期。我们同样也可以依据某个网页的历史更新数据,通过泊松过程进行建模等手段,预测该网页下一次更新的时间。 - 聚类分析策略
以上两种策略,都需要历史数据作为依据。对于新的网页可能不太公平,因此需要采取新的更新策略,常见的如:聚类分析策略。
所谓物以类聚、人以群分,聚在一起的事务一定有某种共性。将聚类分析算法运用在爬虫对网页的更新上,大致过程如下:
四、网页的请求类型
请求类型分为两种(Get\Post)
Get——req.Request(url,header)
Post——req.Request(url,header,postdata)
具体的用法,会在下一次的博客中进行详细的介绍。
五、网页请求的常见错误
| Number | Code | 含义 |
|---|---|---|
| 200 | OK | 一切正常 |
| 301 | Moved Permanently | 重定向到新的URL,永久性 |
| 302 | Found | 重定向到新的URL,非永久性 |
| 304 | Not Modified | 请求资源未更新 |
| 301 | Moved Permanently | 重定向到新的URL,永久性 |
| 302 | Found | 重定向到新的URL,非永久性 |
| 400 | Bad Request | 非法请求 |
| 403 | Forbidden | 禁止访问 |
| 404 | Not Found | 没有找到对应页面 |
| 500 | Internal Server Error | 服务器内部错误 |
| 501 | Not Implemented | 服务器不支持实现请求所需要的功能 |
| 302 | Found | 重定向到新的URL,非永久性 |
本文介绍了网络爬虫的基本概念,包括爬虫分类,如通用爬虫和聚焦爬虫,以及爬行策略如深度优先和广度优先。还讨论了网页更新策略,如用户体验和历史数据策略,并提到了网页请求的Get和Post类型。

2804

被折叠的 条评论
为什么被折叠?



