稳扎稳打学爬虫02—HTTP协议

http原理

爬虫的本质就是通过程序发送HTTP请求,并返回HTML文档,遵守HTTP的传输协议是爬虫的基础。

分类

http :保证准确高效的传输 超文本文档
https :以安全为目标的超文本传输协议,http的基础上增加ssl层。构建一个信息安全通道,保证数据的传输安全等。

构成

请求 requests

request官网:[https://docs.python-requests.org/en/master/api/#requests.Request]
1、向服务器发送请求使用的url
URL 统一资源定位符,也就是我们常说的网址。 用来定位访问资源的字符串。⼀般来说, 我们访问的⽹⻚链接分为两种:动态⽹址、静态⽹址。其中⽹址中含有问号?就是动态⽹址,没有就是静态⽹址
2、url构成格式: 协议://host[:port]/path/…/[?query-string]
协议:访问协议如 http https ftp

  • host:服务器的IP地址
  • port:服务器的端口号 如果默认端口号一般为 80 或者 443
  • path:访问资源的路径
  • query-string:参数,发送给http服务器的数据,多个参数之间用&隔开

3、请求时的请求头 header

  • cookie 是服务器发给用户的,用来确定用户状态的。
  • user-agent 是用户浏览器的信息,有些网站为了防止爬虫,会识别user-agent 来判断,将其改成正常浏览器的User-Agent 内容, 伪装成⼀个普通的⽤户。

4、请求方法 get post
get方法:请求指定⻚⾯的信息,并返回实体。(最常用)
requests.get(url, params=None, **kwargs)

  • url : 基准url 不带参数
  • params :字典类型的参数,会放到链接中
  • **kwargs: 请求中需要的其他参数 比如 headers cookies 等
# 使⽤Requests发起Get请求
url = "https://www.baidu.com"
r = requests.get(url)
r
# 查看⽹⻚源代码
r.text
# 查看解析⽹⻚使⽤的编码,这⾥显示出的编码是我们解析⽹⻚使⽤的编码
r.encoding
# 使⽤appent_encoding 推测⽹⻚编码
r.apparent_encoding
# 给encoding属性重新赋值, ⽤推测的编码去解析⽹⻚内容
r.encoding = r.apparent_encoding

post 方法:⽤于向指定资源提交数据进⾏处理请求(例如表单或者上传⽂件)
requests.post(url, data=None, json=None, **kwargs)

  • url 请求用url
  • data 需要提交的数据 字典 列表形式的元组等
  • json 需要发送的json数据
  • **kwargs:请求过程中其他需要的参数 与get 类似
响应 response

1、响应 状态码(Response Status Code)
请添加图片描述
200 请求已成功,请求所希望的响应头或数据体将随此响应返回
404 请求失败,请求所希望得到的资源未被在服务器上发现。
2、响应头(Respongse Headers)
请添加图片描述

3、响应体(Respongse body )

# 查看 网页的编码格式
response.encoding
# 设置网页的编码格式 为 推测的网页编码格式
response.encoding =  response.apparent_encoding
# 响应的正文,以str 形式输出
response.text
# 如果返回的数据是json字符串,可以使用 json( ) 方法取将json转化为Python字典对象
response.json()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值