爬虫是什么
网络爬虫(Crawler)又称网络蜘蛛,或者网络机器人(Robots). 它是一种按照一定的规则, 自
动地抓取万维网信息的程序或者脚本。换句话来说,它可以根据网页的链接地址自动获取网页 内容。如果把互联网比做一个大蜘蛛网,它里面有许许多多的网页,网络蜘蛛可以获取所有网页 的内容。
爬虫是一个模拟人类请求网站行为, 并批量下载网站资源的一种程序或自动化脚本。
爬虫可以做什么
- 搜索引擎
- 采集金融数据
- 采集商品数据
- 采集竞争对手的客户数据
- 采集行业相关数据,进行数据分析6. 刷流量
理论上只要是互联网上的数据是肉眼可见的,那么就可以使用爬虫技术做采集。
为什么用Python爬虫
- PHP:PHP是世界是最好的语言!!但他天生不是做这个的,而且对多线程、异步支持不是很好,
并发处理能力弱。爬虫是工具性程序,对速度和效率要求比较高。据说目前PHP改善了效率,但是
社区环境这一块还是赶不上Python。 - Java:生态圈很完善,是Python爬虫最大的竞争对手。但是Java语言本身很笨重,代码量很大。
重构成本比较高,任何修改会导致代码大量改动。爬虫经常要修改采集代码。毕竟人生苦
短。。。。 - C/C++:运行效率是无敌的。但是学习和开发成本高。写个小爬虫程序可能要大半天时间。一句话
总结,为什么不用C++来开发爬虫程序,因为那是要头发掉光的,那是要死人的。 - Python:语法优美、代码简洁、开发效率高、支持的模块多。相关的HTTP请求模块和HTML解析
模块非常丰富。还有Scrapy和Scrapy-redis框架让我们开发爬虫变得异常简单。而且有非常丰富的
资源,另外Python也支持异步,对异步的网络编程也非常友好。以后的方向是异步网络编程,非
常适合爬虫程序!!
爬虫的分类
通用爬虫
通用网络爬虫是捜索引擎抓取系统(Baidu、Google、Sogou等)的一个重要组成部分。主要目的
是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。为搜索引擎提供搜索支持。
搜索引擎工作原理:
第一步:抓取网页
搜索引擎去成千上万个网站抓取数据。
第二步:数据存储
搜索引擎通过爬虫爬取到的网页,将数据存入原始页面数据库(也就是文档库)。其中的页面数据与用户浏览器得到的HTML是完全一样的。
第三步:提供检索,网站排名
搜索引擎将爬虫抓取回来的页面,进行各种步骤的预处理:中文分词,消除噪音,索引处理。
搜索引擎在对信息进行组织和处理后,为用户提供关键字检索服务,将用户检索相关的信息展示给用
户。展示的时候会进行排名。
搜索引擎的局限性:
- 搜索引擎抓取的是整个网页,不是具体详细的信息。
- 搜索引擎无法提供针对具体某个客户需求的搜索结果。
聚焦爬虫
针对通用爬虫的这些情况,聚焦爬虫技术得以广泛使用。聚焦爬虫,是"面向特定主题需求"的一种
网络爬虫程序,它与通用搜索引擎爬虫的区别在于: 聚焦爬虫在实施网页抓取时会对内容进行处理筛
选,尽量保证只抓取与需求相关的网页数据。
使用 python 编写一个爬虫爬取百度网址
请求与响应
在进行爬虫数据采集的过程中,往往是通过一个链接地址向服务器模拟发送请求,从而得到此地址
在服务器中的数据。这个地址会遵循互联网数据传输协议:
协议
- 协议,意思是共同计议,协商,经过谈判、协商而定制的共同承认、共同遵守的文件。
- 协议,网络协议的简称,网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连
接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。
爬虫业务场景中最常见就是 http 协议
HTTP/HTTPS 协议
- HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收HTML页面的 方法。
- HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)简单讲是HTTP的安全版,在 HTTP下加入SSL层。
HTTP/HTTPS的优缺点
HTTP 的缺点:
- 通信使用明文(不加密),内容可能会被窃听
- 不验证通信方的身份,因此有可能遭遇伪装
- 无法证明报文的完整性,所以有可能已遭篡改
HTTPS的优点:
- 为了解决 HTTP 协议的以上缺点,在上世纪90年代中期,由网景(NetScape)公司设计了 SSL 协议。
- SSL 是“Secure Sockets Layer”的缩写,中文叫做“安全套接层”。
SSL(Secure Sockets Layer 安全套接层)主要用于Web的安全传输协议,在传输层对网络连接进行加密,保障在Internet上数据传输的安全。
Robots协议
robots是网站跟爬虫间的协议,用简单直接的txt格式文本方式告诉对应的爬虫被允许的权限,也
就是说robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。当一个搜索蜘蛛访问一个站点
时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内
容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。
Robots协议也叫爬虫协议、机器人协议等,全称是“网络爬虫排除标准”(Robots Exclusion
Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取
例如:
某宝:https://www.taobao.com/robot