目录
总览
准备工作
1、爬虫介绍
-
概念:⽹络爬⾍是伪装成 客户端 与 服务器 进⾏数据交互的程序
⼝语化定义:⼀类⾃动采集互联⽹资源的程序
-
作⽤:
-
数据采集
-
搜索引擎
-
模拟操作爬⾍被⼴泛的应⽤于模拟⽤户操作,测试机器⼈,灌⽔机器⼈等。
-
-
爬⾍开发难点:
-
数据获取:服务端会设置图灵测试,阻⽌爬⾍恶意爬取,开发爬⾍过程中,很⼤⼀部分⼯作处理反爬策略。
-
采集速度:多任务爬⾍和分布式爬⾍。
-
2、HTTP与HTTPS
⽹络架构
-
c/s : client/server 客户端/服务端
-
b/s : brower/server 浏览器/服务端
-
m/s: mobile/server 移动端/服务端
HTTP协议
-
原因:保证计算之间信息的有效交流,需要协议。
-
概念:HTTP(Hyper Text Transfer Protocol) 超⽂本传输协议。
HTTPS协议
https(Hyper Text Transfer Protocol over SecureSocketLayer)超文本传输安全协议,是HTTP+SSL,是以安全为⽬标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。
3、URL
通过URL对网络资源进行定位
URL(Uniform Resource Locator),中文叫统一资源定位符。是用来标识某一处资源的地址。也就是我们常说的网址。
协议 + 域名(端口默认80)+ 路径 + 参数
域名(Domain Name),⼜称⽹域,是由⼀串⽤点分隔的名字组成的Internet上某⼀台计算机或计算机组的名称,⽤于在数据传输时对计算机的定位标识 。由于IP地址具有不⽅便记忆并且不能显示地址组织的名称和性质等缺点,⼈们设计出了域名。
端⼝(Port),可以认为是设备与外界通讯交流的出⼝。端⼝可分为虚拟端⼝和物理端⼝,其中虚拟端⼝指计算机内部或交换机路由器内的端⼝,不可⻅;物理端⼝⼜称为接⼝,是可⻅端⼝。
路径(path),表示主机上的⼀个⽬录或者⽂件地址。
4、开发工具
通过快捷键fn+f12 / f12启动 / 右击 ——检查启动
-
elements:⽹⻚源代码(最终⻚⾯渲染的结果)提取数据与分析数据
-
Console:打印内容
-
Sources:整个⽹站资料的来源
Network:⽹络⼯作(数据抓包),客户端与服务器之间交互的数据
5、爬虫流程
我们需要有一个第三方库来帮我们实现发送请求获取响应:
导⼊模块requests
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
1.目标url
-
静态加载
-
动态加载
2.模拟浏览器发送请求,接受响应
请求方式:
get: get⼀般⽤来获取服务器的信息,查询参数⼀般会在URL上显示出来
post:post⼀般是⽤来更新信息。参数不会在URL显示出来
import requests
url = 'https://www.baidu.com/'
response = requests.get(url)
print(response)
输出:
状态码
-
200:请求成功
-
403:可能被识别是反爬的程序了
-
404:服务器找不到请求的⽹⻚
内容获取
-
response.text :返回字符串类型的数据
-
response.content:返回字节流数据(⼆进制)
-
response.content.decode('utf-8'):⼿动解码,获取字符串类型的数据
User-Agent:简称ua,是⼀种向访问⽹站提供你所使⽤的浏览器类型及版本、操作系统及版本、浏览器内核、等信息的标识
Cookie:是某些⽹站为了辨别⽤户身份
Referer:防盗链,显示从那个url跳转过来的,确定请求来路。
3.解析网页
4.保存数据