爬虫--初探篇

爬虫--初探篇

kalilm 619 2022-03-14

基础概念

爬虫

通过编写程序,模拟浏览器上网、抓取数据的过程,这就是爬虫
爬虫技术本身不违法,只有恶意爬虫违法

爬虫风险

干扰网站正常运营
爬取受到法律保护的特点类型数据和信息

ps:爬虫风险也是判断是否恶意爬虫的参考标准

预防措施

优化程序,避免干扰网站正常运行
审查数据内容,及时停止爬取和传播

爬虫分类

1、 通用爬虫

抓取整张页面数据

2、 聚焦爬虫

建立于通用爬虫的基础上,抓取页面特定局部数据

3、 增量爬虫(重点)

检测网站数据更新情况,只会抓取网站最新更新数据
爬虫的矛与盾

80%的流量都是爬虫创造,有利有弊,希望被其他人爬取曝光流量,又不希望同行获取相关信息,这就是爬虫现状

反爬机制

制定相应策略或者技术手段,防止爬虫

反反爬策略

爬虫程序可以通过制定相关的策略或者技术手段,破解网站反爬机制,获取相关数据

robots.txt 协议

君子协议,规定了哪些数据可以爬取,哪些数据不能爬取。此协议没有强制性。世上第一个爬虫相关法律事件,由此文件奠定了基石。

PS:淘宝已经不防爬虫了,失效

http协议

概念:服务器和客户端进行数据交互的一种形式

常用请求头信息
User-Agent:请求载体身份标识
Connection:请求完毕后,是断开还是保持连接
常用响应头信息
Content-Type:服务器响应客户端的数据类型

https 协议

安全的超文本协议

https加密方式

1、对称密钥加密

服务器发送密钥和密文,客户端解密,会被第三方获取并篡改

2、非对称密钥加密

两把钥匙,公钥和私钥,客户端拿公钥加密,服务端私钥解密,不能保证公钥被第三方获取并篡改,并且通讯效率低

3、证书密钥加密

公钥交给证书认证机构,机构返回公钥数字签名,也就是防伪证书

https使用第三种证书加密

基础爬虫

以下是python模块

urllib模块(旧,弃用)

requests模块

python中原生的基于网络请求的模块,功能非常强大,简单便捷,效率极高

作用:模拟浏览器发起请求

1、指定url

2、发起请求

3、获取响应数据

4、持久化存储

安装模块pip install requestsEXPS
请按以下步骤学习,压缩包内文件均有一定注释,由于6是大综合,所以此处特别记录

1、爬搜狗首页

2、爬搜狗关键字内容

3、爬百度翻译

4、爬豆瓣电影分类喜剧详情

5、爬肯德基餐厅查询

6、爬国家药监局化妆品生产许可证

第六个文件的额外笔记

通过简易的测试,知道第6个网站页面详情是动态加载的ajax数据
详情页域名一样,仅参数id不同,id可从json串中获取
详情页的企业详情数据,也是动态加载的,通过探索,发现只需要id参数
于是
url+从json串中获取的id=id对应完整的许可证内容url=>进一步获取json数据

实际上,由于网站改版为POST请求,多了一个参数,可以在浏览器中找到
本篇文章是2020年Python爬虫全套课程(学完可做项目)(1P-15P)的个人学习笔记,不需要python基础,但最好懂一点python,更利于学新的爬虫知识

-->本篇文章转发于Track安全社区lvcham