python爬虫学习:第一章:爬虫基础
第一章:爬虫基础
1.什么是爬虫?
通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程。
- 为什么要模拟浏览器?
比如说我们打开浏览器输入一个网址或者需求后,会呈现一张页面,而页面对应的数据就是浏览器从互联网上获取的,可以认为浏览器就是最原始最天然基于爬虫的工具,浏览器可以帮助我们去互联网抓取数据。 - 抓取:通过编写数据可以获取完整的页面数据或者局部指定特定的页面数据*。
2. 爬虫的价值:
- 实际应用
- 就业
3. 爬虫究竟是合法的还是违法的?
在法律中不被禁止(爬取公开的数据)
具有违法风险(窃取后台数据)
善意爬虫 恶意爬虫
爬虫带来的风险:
— 爬虫干扰了被访问网站的正常运营
— 爬虫抓取了受到法律保护的特定了类型的数据或信息如何在使用编写的爬虫的过程中避免进入局子的厄运?
— 时常的优化自己的程序,避免干扰被访问网站的正常运行
— 在使用、传播爬取到的数据时,审查抓取到的内容,如果发现涉及到的用户隐私、商业机密等敏感内容需要 及时停止爬取和传播。4. 爬虫在使用场景中的分类:
- 通用爬虫:通用爬虫是抓取系统的重要组成部分,抓取的还是一整张页面数据。(抓取系统:各个搜索引擎自己封装的爬虫工具)
- 聚焦爬虫:建立在通用爬虫的基础之上,抓取的是页面中特定的局部内容。
- 增量式爬虫:检测网站中数据的更新情况,只会爬取网站中最新更新出来的数据。
5. 爬虫的矛与盾
比如:电商愿意被比价网站或者购物信息网站爬取信息,因为可以为他们的商品带来更多的流量;而不愿意被同行爬取价格信息,或者产品信息;但是很多电商又会去爬取同行的商品信息。
如何解决这个矛盾?
— 反爬机制:门户网站,可以通过制定相应的策略或者技术手段,防止爬虫程序进行网站数据的爬取。
—反反爬策略:爬虫程序通过制定相关的策略或者技术手段,破解门户网站具备的反爬机制,从而可以获取门户 网站中的相关数据。
6. robots.txt协议
robots.txt协议是第一种反爬机制,君子协议,并没有强制限定网站的数据哪些可以被爬取,哪些不可以被爬取。
题外话:关于robots.txt协议的第一场官司(2000年),电商a将电商b告上法庭,电商b爬取了电商a在 robots.txt协议中已写明不能被爬取的数据,电商a胜诉。
7. http协议(超文本传输协议)
概念:就是服务器和客户端进行数据交互的一种形式
常用的请求头信息 (Request Headers):
- User-Agent: 表示请求载体(浏览器或者爬虫程序)的身份标识。(请求载体:进行请求的工具。例:各个浏览器,或者爬虫代码)
- Connection: 请求完毕后,是断开连接还是保持连接 。
常用的响应头信息( Response Headers):
- content-type: 服务器响应回客户端的数据类型(字符串,json,text/html)
不安全,数据未进行加密
8. https协议(超文本传输协议)
- https协议就是安全的http协议,在https协议中对数据进行了加密(证书秘钥加密)。
9. 数据加密方式:(三个逐渐迭代的加密方式)
- 对称秘钥加密:客户端可对将要发送给服务器的数据进行加密后,客户端将密文和秘钥(解密方式)一块 发送给服务器端,服务器再使用秘钥对密文进行解密,之后便可以的到原文数据。
- 弊端(安全隐患):如果在传输过程中被相关的机制或者机构被拦截,,数据被暴露。
- 解决:使用非对称秘钥加密
- 非对称秘钥加密:服务器端设置一种加密方式,将加密方式传递给客户端,客户端使用服务器端设置的加 密方式对将要传递给服务器端的数据进行加密后,将密文传递给服务器端,服务器端再通过自己的私有秘钥进行解密。
- 非对称秘钥加密涉及两把钥匙:
公钥:服务器端设置的加密方式,都会发送给客户端。
私钥:服务器对各个密文的解密方式。 - 弊端:效率低,影响通信速度;服务器在发送公钥过程中,公钥可能被第三方机构拦截并篡改,无法保证客户端收到的就是服务器创建的公钥。
- 解决:使用证书秘钥加密
- 非对称秘钥加密涉及两把钥匙:
- 证书秘钥加密:为解决非对称秘钥加密中存在的安全隐患,引出了公开秘钥证书机制,数字证书认证机构是客户端与服务器都可信赖的第三方机构,证书传播过程:
服务器端的开发者携带公钥,向数字证书认证机构提出公钥的申请,数字证书认证机构认清申请者身份,并对公钥进行审核,审核通过以后,数字证书认证机构会对公钥做数字签名(用于防伪),然后将已签名的公钥封装在证书里,然后将证书发送到客户端。
客户端可以通过数字证书中的数字签名(很难被伪造)来验证公钥的真伪,确认无误后,客户端使用证书中公钥对将要发送的数据进行加密,加密后向服务器端发送密文,服务器端再使用私钥进行解密
python爬虫学习:第一章:爬虫基础相关推荐
- Python计算机视觉:第一章 图像处理基础
第一章 图像处理基础 1.1 PIL-Python图像库 1.1.1 对图片进行格式转换 1.1.2 创建缩略图 1.1.3 拷贝并粘贴区域 1.1.4 调整尺寸及旋转 1.2 Matplotlib库 ...
- python爬虫学习第一章
<!DOCTYPE html> python爬虫第一章 python网络爬虫的学习 什么是网络爬虫 按照特定需求,从互联网中搜索有用信息网页进行过滤,就叫网络爬虫. 网络爬虫算法 当浏览信 ...
- Python Turtle学习第一章:用Turtle画一些简单的图形
前期准备 首先,使用Python内置的Turtle绘图库需要在程序前添加以下代码: import turtle 也可以写成这样: from turtle import * 我们来讲一讲它们的区别: 使 ...
- Python爬虫学习第二章-1-requests模块简介
Python爬虫学习第二章-1-requests模块简介 这一章主要是介绍requests模块的相关知识以及使用 1.requests模块简介: 概述:是python中原生的一款基于网络请求的模块 ...
- 尚硅谷python核心基础教程笔记-第一章 计算机基础知识
第一章 计算机基础知识(视频1-10) 课程介绍 课程名称:Python基础视频教程 讲师:尚硅谷教育,李立超(lichao.li@foxmail.com) 面向的层次:From Zero to He ...
- 掉进悬崖的小白,捡到python基础秘籍,学习第一周——语法基础,小游戏,无脑循环
掉进悬崖的小白,捡到python基础秘籍,学习第一周--语法基础,小游戏,无脑循环 人生苦短,我用python 语言的种类: 语言的发展: 什么是python 搭建 Python开发环境: 集成开发环 ...
- 计算机第一章学什么,第一章计算机基础知识学习课件.ppt
第一章计算机基础知识学习课件.ppt 3.2.6 表单标记(FORM) 作用:定义一个表单,供后续设计向其中加入表单对象. 格式: 属性:1. action:设定处理程序的文件名. 2. method ...
- 第一章 Redis基础
第一章 Redis基础 课程计划 1. Redis 入 门 (了解) (操作) 2. 数据类型 (重点) (操作) (理解) 3. 常用指令 (操作) 4. Jedis (重点) (操作) 5. 持 ...
- 第一章 Redis基础(简介+下载和安装+基本操作)----黑马
第一章 Redis基础(简介+下载和安装+基本操作) ----黑马 文章目录 第一章 Redis基础(简介+下载和安装+基本操作) ----黑马 学习目标: 1. Redis 简介 1.1 NoSQL ...
- ZeroMQ 中文指南 第一章 ZeroMQ基础【转载】
此文章转载自GitHub : https://github.com/anjuke/zguide-cn 作者信息如下. ZMQ 指南 作者: Pieter Hintjens ph@imatix.com, ...
最新文章
- Host 'XXX' is not allowed to connect to this MySQL server 解决方案/如何开启MySQL的远程帐号...
- java.lang.Runtime
- [ARM-assembly]-ARMV8的exclusive和inexclusive的介绍
- utf8编码-汉字几字节
- RIP协议无法适应网络环境
- 脑洞大开的插画师,每幅都戳到我诡异的笑点
- Typescript学习笔记(五) 模块机制
- 非线性回归的数学理论与方法(非线性最小二乘法)
- 三星计划在第二代GalaxyFold上采用屏下摄像头技术
- 047、JVM实战总结:高级工程师的硬核技能:JVM的Full GC日志应该怎么看?
- 你能卖什么,决定了你的收入落在什么档次
- java获取系统字体大小_Java自动调整到Windows 7的字体大小调整
- CentOS配置静态IP地址
- Linux下获取Root权限的方法
- websocket握手失败_WebSocket通信之握手协议
- 重庆涪陵创新计算机职业学校文艺表演,涪陵信息技术学校2017年元旦文艺汇演...
- 【华人学者风采】刘小平 中山大学
- 图像处理----形态学滤波
- vue-cli自动化测试karma + mocha + chai
- JAVA计算机毕业设计政府采购线上招投标平台Mybatis+源码+数据库+lw文档+系统+调试部署
热门文章
- 堆和栈最通俗的_堆与栈的区别
- 学计算机的应该买哪种笔记本电脑,学生党选便携式电脑,哪款性价比最高​?...
- 分享给某人的前端面试题库(一)
- 公司取名避开这3个坑,通过率或可提升99%!
- 关于安卓19的板子通过usb连接打印机打印问题 (非小票打印机器)
- CMake中target_compile_definitions的使用
- 潜水侠获零度资本千万级天使轮融资,打造围绕水下智能的水下生态链
- java数据结构与算法之(Queue)队列设计与实现
- Datatables 自定义按钮
- edge浏览器启动很慢的解决方法,电脑配置很高