Python网络爬虫(基础)

2021/8/16 22:06:13

本文主要是介绍Python网络爬虫(基础),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

爬虫概念:
通过编写程序,模拟浏览器上网,然后让其去网页上抓取数据的过程。

爬虫在使用场景中的分类:
①通用爬虫
抓取系统的重要组成部分。抓取的是一整张页面数据。
②聚焦爬虫
是建立在通用爬虫的基础之上。抓取的是页面中特定的局部内容。
③增量式爬虫
检测网站中数据更新的情况。只会抓取网站中最新更新出的数据。

反爬机制:
一些门户网站,通过指定相应的策略或技术手段,防止爬虫程序进行网站数据的爬取。

反反爬策略:
爬虫程序通过制定相关的策略或技术手段,破解门户网站中具备的反爬机制,从而获取门户网站中相关的数据。

robots.txt协议:
明确规定了网站中哪些数据可以被爬虫爬取,哪些数据不可以爬取。(君子协议)
网址+/robots.txt就可以查看某网站的robots.txt协议
例:https://www.baidu.com/robots.txt在这里插入图片描述

超文本传输协议

http协议(Hyper Text Transfer Protocol):
概念:服务器客户端之间进行数据交互的一种形式。
常用请求头信息:
①User-Agent:请求载体的身份标识。
②Connection:请求完毕后,是断开连接还是保持连接。
常用的响应头信息:
①Content-Type:服务器响应回客户端的数据类型。
https协议(Secure Hypertext Transfer Protocol):
概念:安全的超文本传输协议。相对于http协议来说会对数据进行加密。
加密方式:
①对称密钥加密:客户端对即将发送给服务器端的数据采用已知的算法进行数据加密,比如MD5或者Base64加密,加密完成后,客户端将密文和密钥(解密方式)一起发送给服务器,服务器使用密钥将密文数据进行解密。但这种方式存在一定的安全隐患,一旦被窃听,或者信息被挟持,就有可能破解密钥,而破解其中的信息。
在这里插入图片描述

	②非对称密钥加密:“非对称加密”使用的时候有两把锁,一把叫做“私有密钥”,一把是“公开密钥”,使用非对称加密的加密方式的时候,服务器首先告诉客户端按照自己给定的公开密钥进行加密处理,客户端按照公开密钥加密以后,服务器接受到信息再通过自己的私有密钥进行解密,这样做的好处就是解密的钥匙根本就不会进行传输,因此也就避免了被挟持的风险。(下图中:A是服务器,B是客户端)

在这里插入图片描述
非对称密钥加密存在的缺点:
Ⅰ.无法保证客户端拿到的密钥一定是由服务端创建的,可能在发送密钥的过程中密钥就被篡改了,只要是发送密钥,就有可能有被挟持的风险。
Ⅱ.非对称加密的方式效率比较低,它处理起来更为复杂,通信过程中使用就有一定的效率问题而影响通信速度

	③证书密钥加密:服务器的开发者携带公开密钥,向数字证书认证机构提出公开密钥的申请,数字证书认证机构在认清申请者的身份,审核通过以后,会对开发者申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将密钥放在证书里面,绑定在一起。服务器将这份数字证书发送给客户端,因为客户端也认可证书机构,客户端可以通过数字证书中的数字签名来验证公钥的真伪,来确保服务器传过来的公开密钥是真实的。一般情况下,证书的数字签名是很难被伪造的,这取决于认证机构的公信力。一旦确认信息无误之后,客户端就会通过公钥对报文进行加密发送,服务器接收到以后用自己的私钥进行解密。

在这里插入图片描述



这篇关于Python网络爬虫(基础)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程