免责声明:自本文章发布起, 本文章仅供参考,不得转载,不得复制等操作。浏览本文章的当事人如涉及到任何违反国家法律法规造成的一切后果由浏览本文章的当事人自行承担与本文章博客主无关。以及由于浏览本文章的当事人转载,复制等操作涉及到任何违反国家法律法规引起的纠纷和造成的一切后果由浏览本文章的当事人自行承担与本文章博客主无关。
1. 什么是爬虫
通过编程, 模拟浏览器上网, 使其抓取数据的过程.
- 编程性: 不需要人为的去浏览器上粘贴复制, 反复操作的工作.
- 模拟性: 模拟浏览器发去请求, 获取返回结果.
- 过程性: 主要体现大数据下, 对数据的需求, 需要长时间等到.
- 依赖性: 爬取过程中极其依赖于网络, 网络的好坏决定了爬取的快慢.
- 持久化: 对爬取的数据进行保存.
- 即见可爬性: 只要是在浏览器上能看到的信息全部都可以爬取的到.
- 边缘性: 爬虫如若使用不当, 可能导致一些法律侵权等问题.
2. 爬虫的价值
爬虫爬取的是数据, 所以一部分爬虫的价值体现在数据的价值.
现今的时代, 数据的价值主要体现在商品化和二次开发.
- 商品化: 数据可转化为商品进行买卖. 都清楚商品的价值取决于社会必要劳动时间, 当数据成为了商品, 意味着营销数字化时代的到来.
- 二次开发: 对数据进行再次利用, 都清楚二次开发有一个不变性, 对于数据就是原有的数据形态不会变, 也就是说无论怎么进行二次利用, 都是基于该数据基础之上进行扩展放大或降维压缩.
爬虫也有一部分价值来自于本身, 社会的需求.
随着大数据时代的到来, 数据的价值随着科技的进步不断的暴露. 爬虫工程师成为了就业趋势的一种选择.
3. 爬虫的规则
爬虫在法律中不被禁止
. 但爬虫必须在法律允许的范围内进行. 必须做到令行禁止
的作风.
爬虫分为善意爬虫和恶意爬虫, 根据我所知法律, 大多数为民事法, 善意和恶意主要取决于当事人在爬取该网站时是否怀有恶意. 法庭意思自治. 居然学习爬虫, 一定要向提供价值提升自我的方向进取.
爬虫最常见的违法行为:
- 爬取了该网站不让爬取的数据. (只要不影响正常网站的运行, 爬取自己在浏览器中本身能看见的数据. 基本上没有什么大事)
- 影响了该网站正常的网络运行.
- 爬取商业机密.
- 爬取了法律上特定保护的数据或信息. 这个有可能触及到刑法. 比如机关信息, 政府信息, 国家机密.
如何避免自己跨过边缘区:
- 优化代码: 避免干扰网站的正常运营.
- 及时检查数据: 爬取的数据及时进行检查, 如若发现有关用户隐私, 商业机密等敏感问题及时停止爬取, 传播. 立即进行删除. (如若感觉极其不妙, 爬取无直接删除操作, 及时联系相关部门. 不要存在任何侥幸心理.)
- 多学习相关法律知识.
4. 爬虫的分类
最常见的三类:
1. 通用爬虫: 搜索引擎爬取系统的重要组成部分, 爬取页面的所有数据信息.
2. 聚焦爬虫: 建立在通用爬虫的基础之上对特定局部数据信息进行爬取.
3. 增量式爬虫: 检测网站中数据更新情况, 只爬取数据中最近更新的数据信息.
5. 爬虫的反爬机制及反反爬策略
反爬机制
门户网站可以制定相应的策略或技术手段, 阻止爬虫程序在网络中爬取数据.
常见的反爬机制:
- robots.txt 协议
- Headers 请求头和 Cookie 限制.
- 限流限量限主机.
- UA 限制.
- 验证码的多样性.
- 异步动态加载.
反反爬策略
爬虫程序可以指定相应的策略或技术手段破解门户网站制定的反爬机制, 从而获取相应的网络数据.
反反爬策略主要通过的模拟人操控浏览器时浏览器的行为.
6. robots.txt 协议
君子协议: 规定了网站上的数据哪些可以被爬取, 哪些不可以被爬取.
百度的 robots.txt 协议: https://www.baidu.com/robots.txt
robots.txt 一些格式如下:
User-agent: *
Allow: /allowUrl
Disallow: /disallowUrl
比如百度的 robots.txt 协议:
7. Http 协议和 Https 协议
Http 协议: 超文本传输协议, 基于请求-响应的模式, 服务器和客户端进行数据交互的形式.
Http 的工作原理.
Http 的请求方式.
Http 的状态码.
Http 的请求协议.Https 协议: 安全的 Http 协议.
请求头:
User-Agent
: 请求载体的身份识别.
Connection: 请求完毕后, 是断开连接还是保持连接.
Cookie: Cookie 信息.
Accept-Encoding: Http 传输过程中是否压缩.响应头:
Content-Type
: 数据返回客户端的响应格式.
Http 加密方式:
- 对称密钥加密: 安全性不高, 存在安全隐患问题.
- 非对称密钥加密: 安全性较高, 也存在劫持密钥可能的发生. 效率低, 处理过程复杂, 影响通信速度.
- 证书密钥加密: 安全性高. 解决了非对称密钥加密的安全隐患.