当前位置: 首页 > 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.lryc.cn/news/600006.html

相关文章:

  • 《计算机组成原理与汇编语言程序设计》实验报告一 基本数字逻辑及汉字显示
  • 机器学习详解(28):LightGBM原理
  • Linux系统编程——进程
  • 腾讯云CodeBuddy+微信小程序:5分钟开发番茄小闹钟
  • IPv6,你开始使用了吗?
  • 学习日志18 python
  • 从入门到进阶:JavaScript 学习之路与实战技巧
  • [科普] 快速傅里叶变换(FFT)和离散傅里叶变换(DFT)的差异
  • JDK8保姆级安装教程
  • 微观低代码
  • 前端项目组成
  • 【DeepRare】疾病识别召回率100%
  • Linux parted问题:指定分区边界失效
  • HTTP响应状态码详解
  • Java 常用数据库详解
  • 数据结构 之 【排序】(递归实现快速排序)
  • 【补题】Codeforces Round 735 (Div. 2) B. Cobb
  • 中国移动融合企业网关H10G-13-中星微ZX296716处理器-破解教程
  • 基于springboot的小区车位租售管理系统
  • 学习:JS[6]环境对象+回调函数+事件流+事件委托+其他事件+元素尺寸位置
  • 利用DeepSeek测试kdb+x的tpch sf=10数据
  • Vue2-VueRouter
  • rtpengine的docker化
  • 【C语言进阶】一篇文章教会你文件的读写
  • 微服务架构中的资源调度与负载均衡实践
  • CSS3新特性深度解析:Position Sticky粘性定位完整指南
  • Android 15中的16KB大页有何优势?
  • 深度学习篇---预训练模型
  • 升级目标API级别到35,以Android15为目标平台(三 View绑定篇)
  • 【应急响应】进程隐藏技术与检测方式(二)