当前位置: 首页 > 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.dtcms.com/a/298722.html

相关文章:

  • centOS7 yum安装新版本的cmake,cmake3以上怎么安装,一篇文章说明白
  • Java并发编程第十篇(ThreadPoolExecutor线程池组件分析)
  • 无印 v1.6 视频解析去水印工具,支持多个平台
  • Android悬浮窗导致其它应用黑屏问题解决办法
  • RocketMQ 5.3.0 ARM64 架构安装部署指南
  • J2EE模式---数据访问对象模式
  • C语言案例《猜拳游戏》
  • VSCode 报错 Error: listen EACCES: permission denied 0.0.0.0:2288
  • Java 笔记 interface
  • C#入门实战:数字计算与条件判断
  • Web攻防-业务逻辑篇密码找回重定向目标响应包检验流程跳过回显泄露验证枚举
  • 【PyTorch】图像多分类项目
  • 一些常见的网络攻击方式
  • CY5-OVA科研方向,星戈瑞荧光
  • Pytest tmp_path 实战指南:测试中的临时目录管理
  • C语言————原码 补码 反码 (日渐清晰版)
  • MinIO 安装指南 - Linux ARM64
  • Linux网络管理与IP配置实验指南
  • MySQL 中的“双路排序”与“单路排序”:原理、判别与实战调优
  • 面向对象编程实战:Python打造你的数码宠物世界
  • 【速成速通】嵌入式软硬件学习路径:从 0 到实战的知识图谱
  • IPv6实战指南:从接入到应用
  • 《C++ vector 完全指南:vector的模拟实现》
  • Python应用append()方法向列表末尾添加元素
  • 基于Java的健身房管理系统
  • 比特币技术简史 第九章:比特币的未来 - 发展趋势、挑战和机遇
  • 零基础-动手学深度学习-6.1 从全连接层到卷积
  • 使用IP扫描工具排查网络问题
  • 上海AI Lab长时序感知具身导航!StreamVLN:基于慢快上下文建模的流式视觉语言导航
  • 与 TRON (波场) 区块链进行交互的命令行工具 (CLI): tstroncli