爬虫开发基础
(一)HTTP请求的交互过程
- (1)客户端浏览器向网站所在的服务器发送一个请求
- (2)网站服务器接收到这个请求后进行解析、处理,然后返回响应对应的数据给浏览器
- (3)浏览器中包含网页的源代码等内容(存在浏览器的缓存中),浏览器再对其进行解析,最终将结果呈现给用户
- Requests请求包含:URL、请求方式、请求参数
- Response响应:获取请求参数、处理请求、响应
- Elements:分析网页结构,获取数据
- Console:打印输出网站的一些信息
- Sources:加载网页所需要的所有源文件,如Elements源代码、CSS文件、JS文件等
- Network:查看整个网页所发送的所有网络请求
(二) Session与Cookie
Session
- session代表服务器与浏览器的一次会话过程
- session是一种服务器端的机制,session对象用来存储特定用户所需的信息
- session由服务器端生成,保存在服务器的内存、缓存、硬盘或数据库中
工作原理
- 客户端通过URL向服务器端发送请求,服务器端接受请求产生session对象,并生成sessionID保存在cookie中返回给客户端,客户端下次发送的请求即携带了sessionID,客户端可以据此验证用户是否已登录
Cookie
- cookie是由服务器端生成后发送给客户端(通常是浏览器),cookie总是保存在客户端
工作原理
- (1)创建cookie
- (2)设置存储cookie(请求头中set-Cookie)
- (3)发送cookie
- (4)读取cookie
- 查看cookie:设置-网站设置-cookie和网站数据-查看所有cookie和网站数据
(三)JSON
- JavaScript ObjectNotation,JS对象标记,是一种轻量级的数据交互格式,采用完全独立于编辑语言的文本格式来存储和表示数据
- 简洁清晰的层次结构使得json成为理想的数据交换语言,易于阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率
JSON的数据格式
- (1)对象表示为键值对
- (2)数据由逗号分隔
- (3)花括号保存对象
- (4)方括号保存数据
JSON数据的解析
my_json={'name':'python','address':{'province':'浙江省','city':['杭州','嘉兴','温州']}}
#获取浙江省
province=my_json['address']['province']
print(province) #浙江省
#获取杭州
city=my_json['address']['city'][0]
print(city) #杭州
(四)Ajax
- Ajax在浏览器与web服务器之间用异步数据传输,使网页从服务器获取少量而不是全部信息
- Ajax技术独立于浏览器和平台
- Ajax一般返回的是JSON,直接对Ajax地址进行Post或Get,以此返回JSON数据
判断是否为Ajax数据(动态数据)
- (1)触发事件时,若网页发生没有刷新状态,则说明数据是通过Ajax生成并渲染的,反之数据就是通过服务器后台生成并加载的(静态数据)
- (2)Source中Ctrl+F查找Elements中的内容,若显示0,这说明是Ajax请求