当前位置: 首页 > news >正文

python基础:request模块简介与安装、基本使用,如何发送get请求响应数据,response属性与请求头

1. request模块简介与安装
request在爬虫中最重要的就是帮助我们发送请求
request基本使用
参考网址:https://requests.readthedocs.io/projects/cn/zh-cn/latest/
2. 核心特性:

  • 简单易用的API无需手动处理连接、编码或者复杂的参数设置,一行代码即可发送请求
  • 支持所有的HTTP方法GET、post、put、delete、head、options等
  • 自动处理多种功能
  • 丰富的请求配置支持设置请求头
    3. pip安装requests
    终端命令: pip install requests(如果出现pip不是内部或者外部命令,也不是可运行的程序或者批处理文件,原因是没有配置pip的环境变量)
    安装之后检查一下: pip show requests
    执行后的结果:在这里插入图片描述
    这里可以看到requests的版本是2.32.4
  1. 发送get请求
import requests# 执行爬虫:爬虫流程
# 1.准备目标网址的url地址
# 2.发起获取网页返回结果
# 3.处理响应结果
# 4.储存数据# url地址
url = 'https://www.baidu.com'# 向url发送get请求
response = requests.get(url)# 打印响应结果,response.text一般能够根据响应自动解码
# print(response.text)
#
response.encoding = 'utf-8'
# 获取网页源码,为了能够正确解码网页内容,可以尝试以下几种方式:
# response.content.decode()
# response.content.decode('GBK')
# response.text
# 推荐:最稳妥的方式是使用response.content.decode(),因为它能够通过指定编码的方式来确保正确解码
# print(response.text)try:content = response.content.decode()
except UnicodeDecodeError:try:content = response.content.decode('gbk')except UnicodeDecodeError:content = response.textprint(content)
  1. 响应数据的获取
import requests# url地址
url = 'https://www.baidu.com'# 向url发送get请求
response = requests.get(url)# 3.打印结果
print("---------------请求地址------------")
print(response.url)
print("---------------响应体str类型结果------------")
print(response.text)
print("---------------响应头------------")
print(response.headers)
print("---------------响应状态码------------")
print(response.status_code)
print("---------------响应对应的请求头------------")
print(response.request.headers)
print("---------------响应体bytes类型------------")
print(response.content)
print("---------------响应对应请求的cookie------------")
print(response.request.headers.get('cookies'))
print("---------------响应的cookie,经过了set cookie的动作------------")
print(response.cookies)
print("---------------响应对应请求的url------------")
print(response.url)
  1. 获取网页源码的通用方式
  2. response的其他属性
  3. 携带http请求头
  4. 图片下载案例
  5. 字符集编码
http://www.xdnf.cn/news/1187101.html

相关文章:

  • SpringBoot学习路径--SpringBoot的简单介绍和项目搭建
  • JDK8保姆级安装教程
  • 协作机器人掀起工厂革命:码垛场景如何用数据重塑制造业命脉?
  • day33:零基础学嵌入式之网络——TCP并发服务器
  • 渗透高级-----测试复现(第三次作业)
  • NodeJS搭建SSE接口服务
  • 2025.7.25 测试 总结
  • python学习DAY22打卡
  • 认识编程(3)-语法背后的认知战争:类型声明的前世今生
  • RCE真实漏洞初体验
  • 第三篇:VAE架构详解与PyTorch实现:从零构建AI的“视觉压缩引擎”
  • 练习实践-基础设施-文件共享-windows和linux之间的文件共享-smb服务搭建
  • 【应急响应】进程隐藏技术与检测方式(二)
  • 量子涨落驱动的全局寻优:单光子CIM的理论与实证
  • 在 .NET 中使用 Base64 时容易踩的坑总结
  • CentOS8 使用 Docker 搭建 Jellyfin 家庭影音服务器
  • Android Ntp系统校时流程
  • HTML 常用标签速查表
  • 深入解析 ArkUI 触摸事件机制:从点击到滑动的开发全流程
  • 14-C语言:第14天笔记
  • MyBatis-Plus中使用BaseMapper实现基本CRUD
  • spring boot整合mybatis
  • Haprxy七层代理
  • MyBatisPlus(一)简介与基本CRUD
  • 开疆智能ModbusTCP转Profient网关连接西门子PLC与川崎机器人配置案例
  • leetcode933最近的请求次数
  • 继承接口实现websocke,实现任意路径链接
  • Java 流(Stream)分类、用途与性能分析
  • 黑马点评01 - 项目介绍 短信登录
  • 【C#补全计划:类和对象(七)—— 重写虚方法】