Python爬虫——网络爬虫简介
携手创作,共同成长!这是我参与「掘金日新计划 · 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 协议。
常见通用爬虫名称及其对应的网站和名称:
| 通用爬虫名称 | 网站和名称 | | ------------ | --------------------------- | | BaiduSpider | www.baidu.com 百度 | | Googlebot | www.google.com 谷歌 | | 360Spider | www.so.com 360搜索 | | YodaoBot | www.youdao.com 有道 | | ia_archiver | www.alexa.cn Alexa | | Scooter | www.altavista.com altavista |
通用爬虫缺点:
- 爬取的数据大多是无用的
- 不能根据用户的需求来精准获得数据,爬取的网站会竞价排名
聚焦网络爬虫
聚焦网络爬虫(Focused Crawler),又称主题网络爬虫:根据特定需求,来实现特定网络爬虫程序,抓取需要的数据。
聚焦网络爬虫在抓取的时候会对网页内容进行筛选和处理,尽量只抓取与需求相关的网页数据,极大地节省了硬件和网络资源 。
设计思路:
- 获取要爬取的URL
- 打开网页源代码分析网页结构以及元素节点
- 模拟浏览器发送http请求访问url,返回html对象
- 解析html对象,得到需要的数据
增量式网络爬虫
增量式网络爬虫(Incremental Web Crawler):对已下载的网页采取增量式更新,它可以监测网站数据更新的情况,以便爬取到该网站新出的数据或者已经发生变化的数据。