Python爬虫——网络爬虫简介

207 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第14天,点击查看活动详情

1、爬虫介绍

网络爬虫(Web Spider)又称“网络蜘蛛”或“网络机器人”,它是一种按照一定规则从互联网中获取网页内容的程序或者脚本。

网络爬虫会模拟人使用浏览器,上网自动抓取互联网中数据。

Python 爬虫指的是用 Python来编写爬虫程序。其他语言也可以编写爬虫,如 Java、PHP 、C/C++等,不过相比而言,Python 语法优美、代码简洁、开发效率高、支持多个爬虫模块,比如 urllib、requests、Bs4 等。Python 的请求模块和解析模块丰富成熟,并且还提供了强大的 Scrapy 框架,让编写爬虫程序变得更为简单。因此 Python 爬虫几乎成了网络爬虫的代名词。

2、爬虫的应用

1、数据分析:采集有价值的数据,过滤掉那些无效的数据 2、社交软件用户冷启动:当社交产品没有用户时,可以爬取其他社交软件用户的数据当做假用户,来实现引流

3、舆情监控 4、竞争对手监控:采集竞争对手数据

注意:要遵守爬虫的使用规范、礼仪,不要做损害他人利益、抓取个人隐私的事情,否则可能“牢底坐穿”。

3、爬虫的分类

robots 协议

robots 协议也称作爬虫协议、机器人协议,全名叫作网络爬虫排除标准(Robots Exclusion Protocol):是一种“约定俗称”的协议,用来告诉爬虫和搜索引擎哪些页面可以抓取,哪些不可以抓取,并不具备法律效力,起不到限制作用,一般是放在网站根目录下的名为robots .txt 的文本文件。

当爬虫访问一个网站时,它首先会检查这个网站根目录下是否有robots.txt文件,如果存在,搜爬虫会根据robots.txt文件定义的爬取范围来爬取数据。如果没有robots.txt文件,爬虫便会爬取所有可直接访问的页面的数据。

自己写的爬虫可以不需要遵守 robots 协议,但是爬取内容不能用于商业用途。

通用网络爬虫

通用网络爬虫又称全网爬虫(Scalable Web Crawler),是搜索引擎的重要组成部分,比如百度,sougou,谷歌,360等搜索引擎。通用爬虫遵守 robots 协议。

常见通用爬虫名称及其对应的网站和名称:

通用爬虫名称网站和名称
BaiduSpiderwww.baidu.com 百度
Googlebotwww.google.com 谷歌
360Spiderwww.so.com 360搜索
YodaoBotwww.youdao.com 有道
ia_archiverwww.alexa.cn Alexa
Scooterwww.altavista.com altavista

通用爬虫缺点:

  • 爬取的数据大多是无用的
  • 不能根据用户的需求来精准获得数据,爬取的网站会竞价排名

聚焦网络爬虫

聚焦网络爬虫(Focused Crawler),又称主题网络爬虫:根据特定需求,来实现特定网络爬虫程序,抓取需要的数据。

聚焦网络爬虫在抓取的时候会对网页内容进行筛选和处理,尽量只抓取与需求相关的网页数据,极大地节省了硬件和网络资源 。

设计思路:

  • 获取要爬取的URL
  • 打开网页源代码分析网页结构以及元素节点
  • 模拟浏览器发送http请求访问url,返回html对象
  • 解析html对象,得到需要的数据

增量式网络爬虫

增量式网络爬虫(Incremental Web Crawler):对已下载的网页采取增量式更新,它可以监测网站数据更新的情况,以便爬取到该网站新出的数据或者已经发生变化的数据。