爬虫及相关概念
爬虫是什么
爬虫通过编写程序来模拟浏览器上网,让其去互联网上抓取数据。
一般用于抓取页面上特定的数据,并运用各种数据分析手段来使数据体现使用价值。
爬虫及爬虫的合法性
爬虫本身在法律中是不被禁止的,但爬取数据具有违法风险。
一般的搜索引擎都具有自己的抓取系统,这样的爬取是被支持的。
但如抢票爬虫等损害他人利益的爬虫即为恶意爬虫。恶意爬虫一般体现在:
- 爬虫干扰被访问网站的正常运营。
- 爬虫抓取了受到法律保护的特定类型的数据或信息。
在编写爬虫的过程中需注意的事项: - 时常优化程序,不要干扰被访问网站的正常运行。
- 传播爬取的数据时需审查抓取到的内容,发现了涉及用户隐私/商业机密等敏感内容,则需要及时停止爬取和传播。
爬虫的使用分类
- 通用爬虫
搜索引擎抓取系统的重要组成部分。抓取的是一整张页面 - 聚焦爬虫
是建立在通用爬虫的基础之上,抓取的是页面中特定的局部内容。 - 增量式爬虫
检测网站中数据更新的情况,只会抓取网站中最新更新的数据。
反爬与反反爬机制
反爬机制:网站制定的策略或技术,防止网站数据被爬取。
反反爬策略:破解门户网站的反爬机制的策略或技术,
权威反爬:robots.txt协议
“君子协议”
规定网站能够被爬取和不能够被爬取的数据。但并未强制反爬。
访问方法:网站域名/robots.txt
可以看到网站不允许爬取(Disallow)的目录数据
在爬取数据时需要**严!格!遵!守!**robots协议
http及https协议
http/https协议:超文本传输协议
http协议
概念:服务器与客户端进行数据交换的形式,相当于一种语言。
http常用请求头信息(Request Headers):
- User-Agent:表示请求载体的身份标识,是一组字符串,包含如浏览器版本、操作系统版本等信息。请求载体相当于当前浏览器。
- Connection:表示请求成功后是否断开连接。包含‘Close’和‘keep alive’两种值。
常用相应头信息: - Content-Type:服务器相应回客户端的数据类型。
https协议
这段我也听不太懂,就搬了老师讲的话
概念:安全的http协议,涉及数据传输和交互中的数据加密。
加密方式:
- 对称密钥加密:加密流程如下:客户端发起请求,并把数据进行加密,再把密钥和密文同时发送给服务器,服务器再进行解密。但如果请求被拦截,则拦截信息的中间机构能轻易对密文进行解密。
- 非对称密钥加密:由服务器端设定加密方式(公钥),将加密方式发送给客户端,客户端使用该加密方式将数据进行加密,加密后将密文发送给服务器端,服务器端接收了密文后自行解密。缺点是加密方式的效率较低,影响通信速度,且如果公钥被中间机构拦截,中间机构会将密钥进行篡改,再发送给客户端。
- 证书密钥加密(https使用的加密方式):服务器设定公钥,公钥被提交到证书认证机构进行审核,证书认证机构是服务器和客户端都能够信任的机构,该机构对公钥进行数字签名防伪,并将公钥封装到证书中,发送给客户端,客户端使用该公钥对信息进行加密,再将密文发送给客户端。能够避免非对称密钥加密的安全隐患。