爬虫Day02

1.requests的高级用法

1.1自动携带cookie的session对象

浏览器的HTTP请求是无状态无连接的
所以在每次发送请求时不会自动携带cookie
借助与session发送请求解决此问题

import request
header = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
    'refer':'',
}
data={
'linkId':'',
}
session = requests.session()
res = session.post('http://www.aa7a.cn/user.php', data=data, headers=header)

# 此时就不需要携带cookie
res1 = session.get('http://www.aa7a.cn/')

1.2 响应对象Response

HTTP的响应就是res对象,所有HTTP响应的东西都在对象中
在这里插入图片描述

import requests
response = requests.get('')

# 类型
type(response)
# 响应体转成字符串,默认使用UTF-8
response.text
# 响应体的bytes格式
response.content
# 响应状态码
response.status_code
# cookie
response.cookie
# 将cookie转成字典
response.cookies.get_dict()
# 键值对
response.cookies.items()
# 请求的地址
response.url
# 访问一个地址如果重定向,requests会自动重定向过去,history中存放着没有重定向之前的地址
response.history
# 网页编码
response.encoding
# 关闭
response.close()
#  用于下载图片视频,一点一点取值
response.iter_content()

1.3 案例:下载图片或视频到本地

res = requests.get('图片或者视频的网址')
with open ('文件名','wb') as f :
	for line in res.iter_content(chunk_size=1024):
		f.write(line)

1.4 编码问题

直接打印res.text字符串形式,从网络过来时二进制;转成二进制涉及到编码,默认是以utf-8
可以指定转换成字符串的编码格式

res.encodeing = '编码格式'

1.5 解析json格式数据

网页返回的数据可能是json格式
解析后可以直接使用

解析json格式数据的网址
www.Json.com



data:可以是浏览器编码后原生的,可以是k:v键的形式
res =  requests.post('请求地址', data=data, headers=header)

# 解析浏览器返回的数据
res.json()

# 将数据使用解析网址解析

# 使用循环取出数据中想要的内容
for item in res.json()

# item是数据中的到的对象
# 直接使用 item['K键'] 取值即可

1.6 发送HTTPS请求

# 参数
verify = False
# 不使用安全证书发送HTTPS请求

# 如果报错在发送请求时携带证书即可
 requests.post('请求地址', data=data, headers=header,cert=('证书'))

1.7 使用代理

import requests
# 参数是proxies
proxies = {
}
response = requests.get('网址',proxies)

1.8 超时设置

import requests
# 参数是timeout
response = requests.get('网址',timeout=1)

1.9 异常处理

在向网址发送请求的时候可能会遇到异常
用requests模块的异常会捕获到详细的异常信息
可以使用全局的异常捕获
只不过requests模块的异常捕获更为详细

import requests
from requests.exceptions import *
tyr:
	response = requests.get('请求地址',timeout=1)
except ReadTimeout:
	.....
except  RequsestsException:
	.....
except  Exception as e:
	print(e)

1.10 上传文件

import requests
files = {
'文件名':open('本地文件名','rb')
}
response = requests.post('提交的网址',files=files)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值