学习目标:
- 写一个最简单的爬虫----爬取百度网页
1、请求地址:https://www.baidu.com
学习内容:
- 了解爬虫的目的
- 爬虫的概念
- 爬虫的分类
- 第一个爬虫
一、爬虫的目的:
如今,人工智能,大数据离我们越来越近,很多公司在开展相关的业务,但是人工智能和大数据中有一个东西非常重要,那就是数据,但是数据从哪里来呢?
这就要用爬虫去抓取数据以便于来达到以下目的:
1.进行在网页或者是app上进行展示
2.进行数据分析或者是机器学习相关的项目
3.数据建模
二、爬虫的概念
1、爬虫的本质
就是模拟正常用户发送请求获取数据
前后端之间的通信
前端:将数据进行显示给用户查看
爬虫:将前端的数据拿下来放到我们自己的计算机中
前端工程师就会想方设法的拦截我们的爬虫
前端工程师跟爬虫工程师就是相爱相杀的小两口
反爬:将爬虫防御在外,反爬是有误伤的,可能将正常用户也给防御了
反反爬:避免前端拦截我们的爬虫而实现的手段
2、爬虫的技术难关
js逆向介绍
一般就是我们在请求网站服务器的时候,后端服务器会对相关参数进行校验之后才会将数据返回给用户,而在请求发起前js就会对相关参数进行加密,那么就需要我们在开发爬虫程序的时候抠出相关参数的js加密的代码,并根据其加密规则重构代码结构,让其能够成功构造一个准确的参数交由后端服务器进行验证。
加密介绍
通过加密方法,使数据被转换。常用加密方法有 md5,base64等。
验证码介绍
验证码一般是阻止爬虫程序爬取,当遇到验证码,就可能终止爬虫程序。
反爬的分类
从特点上可以对反爬虫手段进行细分如下:
1.信息校验型反爬
2.动态渲染型反爬
3.文本混淆型反爬(CSS偏移反爬)
4.特征识别型反爬
3、爬虫的原理
三、爬虫的分类
▲通用爬虫: 通常指搜索引擎和大型 Web 服务提供商的爬虫
▲聚焦爬虫: 针对特定网站的爬虫, 定向的获取某方面数据的爬虫
▲累积式爬虫: 从开始到结束, 不断进行爬取, 过程中进行去重操作
▲增量式爬虫: 已下载网页采取增量式更新和只爬取新产生的或者已经发生变化网页的爬虫
▲Deep web爬虫(深层网络爬虫): 不能通过静态链接获取的, 隐藏在搜索表单后的, 只有用户提交一些关键词才能获得的 web页面
提示:这里就开始写我们的第一个爬虫啦!!!!!!
四、爬虫一血
1、流程先写出来
爬虫的流程:
1.确定url
2.发送请求获取响应
3,提取数据
4.保存数据
2、接下来是步骤
3、最后上代码:
#导入request库----->先安装 pip install requests
import requests
# 1.找到正确的url
url = 'url = ''
#伪装自己 请求头
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36'
}
# 2.发送请求获取响应
res_ = requests.get(url,headers=headers)
res_ = response.content.decode()
# 3 保存数据
# 相对路径 当前文件夹
# 绝对路径 从盘符开始往下一直到指定位置
with open('baidu.html', 'w', encoding='utf-8') as f:
f.write(res_)
print(res_)
到这里我们一个简单的爬虫就写好啦!!!先简单的感受一下爬虫后续再深入了解。。。。。。
提示:做爬虫一定要**注意**如果涉及到私人信息或者公司单位的机密信息就不要去碰,爬虫开发过程中意外拿到了用户私人信息或者公司机密,千万不要交易!!!!掌握好爬虫的度就没有任何问题!!!!!!