十六:Python学习笔记-- 爬虫(2)requests 模块详解

目录

安装 requests 模块

基本请求方法

GET 请求

POST 请求

PUT 请求

DELETE 请求

添加请求头:

处理查询参数:

文件上传:

常见响应状态码

访问超时

cookie的查询和设置

        查询 Cookies

        设置 Cookies

设置爬虫代理

小试牛刀 


安装 requests 模块

你可以使用 pip 来安装 requests。在终端或命令提示符中输入以下命令:

pip install requests

基本请求方法

requests 模块支持多种 HTTP 请求方法,以下是常用的几种:

GET 请求

用于从服务器获取数据。

import requestsresponse = requests.get('https://zbr/data')
print(response.status_code)  # 状态码
print(response.json())        # 返回的 JSON 数据

POST 请求

用于向服务器发送数据。

import requestsdata = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://zbr/data', json=data)
print(response.status_code)
print(response.json())

PUT 请求

用于更新资源。

import requestsdata = {'key1': 'new_value'}
response = requests.put('https://zbr/data/1', json=data)
print(response.status_code)

DELETE 请求

用于删除资源。

import requestsresponse = requests.delete('https://zbr/data/1')
print(response.status_code)

添加请求头

headers = {'Authorization': 'Bearer YOUR_TOKEN'}
response = requests.get('https://zbr/data', headers=headers)

处理查询参数

params = {'param1': 'value1', 'param2': 'value2'}
response = requests.get('https://zbr/data', params=params)

文件上传

files = {'file': open('test.txt', 'rb')}
response = requests.post('https:/zbr/upload', files=files)

常见响应状态码

  • 200 OK

    • 请求成功,服务器返回所请求的数据。
  • 201 Created

    • 请求成功,资源被创建,通常用于 POST 请求。
  • 204 No Content

    • 请求成功,但没有返回内容,常用于 DELETE 请求。
  • 400 Bad Request

    • 服务器无法理解请求,通常是因为请求参数错误。
  • 401 Unauthorized

    • 请求需要用户验证,通常是因为缺少或无效的认证凭据。
  • 403 Forbidden

    • 服务器拒绝请求,即使已验证用户,通常是权限问题。
  • 404 Not Found

    • 请求的资源在服务器上未找到,常见于无效的 URL。
  • 500 Internal Server Error

    • 服务器遇到意外情况,导致无法完成请求。
  • 503 Service Unavailable

    • 服务器当前无法处理请求,可能是由于过载或维护。

访问超时

        在使用 requests 模块时,可以设置请求的超时时间,以防止请求因网络问题而长时间阻塞。可以通过 timeout 参数设置超时:

import requeststry:response = requests.get('https://zbr/data', timeout=5)  # 设置超时为5秒response.raise_for_status()  # 检查请求是否成功
except requests.exceptions.Timeout:print('请求超时!')
except requests.exceptions.HTTPError as err:print(f'HTTP错误:{err}')
except Exception as err:print(f'其他错误:{err}')

cookie的查询和设置

        查询 Cookies

        在发送请求后,你可以通过 response.cookies 属性来访问服务器返回的 cookies:

import requests# 发送请求
response = requests.get('https://httpbin.org/cookies/set?name=value')# 查询 cookies
cookies = response.cookies
for cookie in cookies:print(f'{cookie.name}: {cookie.value}')

        设置 Cookies

        在发送请求时,可以通过 cookies 参数来设置 cookies

import requests# 创建一个字典,包含要设置的 cookies
cookies = {'name': 'value', 'session_id': 'abc123'}# 发送请求并设置 cookies
response = requests.get('https://httpbin.org/cookies', cookies=cookies)# 打印返回的 cookies
print(response.json())

设置爬虫代理

在使用 requests 模块进行网页爬虫时,设置代理可以帮助你隐藏真实 IP 地址,避免被网站封禁。

就是找到代理服务商 买一下资源 把信息填到proxies  里面去

import requests# 设置代理
proxies = {'http': 'http://your_http_proxy:port','https': 'http://your_https_proxy:port',
}
# 身份验证写法
proxies = {'http': 'http://username:password@your_http_proxy:port','https': 'http://username:password@your_https_proxy:port',
}# 要发送的数据
data = {'key': 'value'}# 发送 POST 请求
response = requests.post('https://httpbin.org/post', data=data, proxies=proxies)# 打印响应内容
print(response.json())

小试牛刀 

import requests# 目标 URL
url = 'https://www.baidu.com'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36'
}
try:# 发送 GET 请求response = requests.get(url, headers=headers)# 检查请求是否成功response.raise_for_status()# 保存为 HTML 文件with open('baidu.html', 'w', encoding='utf-8') as file:file.write(response.text)print('网页已成功保存为 baidu.html')except requests.exceptions.RequestException as e:print(f'请求出错: {e}')

至少 下载下来东西了  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/460861.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无人机敏捷反制技术算法详解!

一、技术概述 无人机敏捷反制技术算法主要通过对非法入侵的无人机进行快速、精准的探测、识别、干扰和摧毁等操作,从而消除无人机威胁,保障人员和财产安全。这一技术涵盖了多种技术手段,如无线电干扰、激光打击、网捕等,并需要综…

8个最佳iMacros替代方案(2024)

1、前言 iMacros是web自动化、抓取和测试的领先工具,它提供了一个浏览器扩展和桌面工具,可以轻松地自动化你的日常任务,然而,自动化所需的关键功能仅在高级版本中可用,iMacros几乎没有其他缺点。 如图所示&#xff1…

数据库数据恢复—Oracle ASM磁盘组掉线 ,ASM实例无法挂载的数据恢复案例

Oracle数据库数据恢复环境&故障: Oracle ASM磁盘组由4块磁盘组成。Oracle ASM磁盘组掉线 ,ASM实例不能mount。 Oracle数据库故障分析&恢复方案: 数据库数据恢复工程师对组成ASM磁盘组的磁盘进行分析。对ASM元数据进行分析发现ASM存储…

解决电脑突然没有声音

问题描述:电脑突然没有声音了,最近没有怎么动过系统,没有安装或者卸载过什么软件,也没有安装或者卸载过驱动程序,怎么就没有声音了呢? 问题分析:仔细观察,虽然音量按钮那边看不到什…

filebeat+elasticsearch+kibana日志分析

1 默认配置 1.1 filebeat filebeat-7.17.yml,从网关中下载k8s的配置,指定es和kibana的配置 通过kibana查询可以查询到日志了,但此时还不知道具体怎么用。 1.2 kibana 在Discover中创建索引格式:filebeat-*,得到如下图&#xf…

【书生.浦语实战营】——入门岛

【书生.浦语实战营】——入门岛_第一关_Linux基础 任务分布1. 本地vscode远程连接并进行端口映射端口映射What——何为端口映射How——怎么进行端口映射 2. Linux基础命令touch :创建文件mkdir :创建目录cd:进入 退出 目录pwd :确定当前所在目录cat:可以…

Metasploit(MSF)使用

目录 Metasploit简要介绍 主要功能 漏洞利用: Payload 生成: 辅助模块: 后渗透模块: 报告生成: 使用教程以及案例 基础命令使用 生成被控端 命令介绍 kali启动主控端 1.启动以及设置载荷等配置 漏洞检测…

zynq PS端跑Linux响应中断

这篇文章主要是讲述如何在Zynq的PS上跑Linux启动IRQ,环境为vivado2019.1,petalinux2019.1 ubuntu20.04,本人初学者,欢迎批评指正 1. Vivado硬件设计 确保自定义IP的中断信号通过 IRQ_F2P 连接到PS端。在开始Petalinux配置之前&a…

SpringBoot篇(监控)

目录 学习前言 一、什么是监控? 二、监控的意义 1. 简介 2. 总结 3. 思考 三、可视化监控平台 1. 简介 2. 实操 2.1. 服务端开发 2.2. 客户端开发 配置多个客户端 2.3. 总结 2.4. 思考 四、监控原理 1. 简介 2. 总结 五、自定义监控指标 1. 简介…

huggingface的lora与resume方法训练模型(以BERT为列)

文章目录 前言一、LoRA训练与Resume方法Demo1、LoraConfig配置文件介绍2、PEFT的LoRA训练的完整Demo3、LoRA训练与LoRA的resume训练1、LoRA训练2、LoRA的resume训练 4、PEFT的LoRA训练方法 二、权重载入1、参数2、文件路径获取3、config加载更新4、权重文件加载1、不同条件权重…

比微软的GraphRag更加强大的LightRAG:简单快速的检索增强生成

🚀 LightRAG:简单快速的检索增强生成 该存储库托管了 LightRAG 的代码。该代码的结构基于nano-graphrag。 请添加图片描述 🎉 新闻 [2024.10.29]🎯📢LightRAG 现在支持多种文件类型,包括 PDF、DOC、PPT …

Unreal Engine 5 C++(C#)开发:使用蓝图库实现插件(二)编辑BPLibrary.h中的枚举及结构体

目录 引言 一、头文件编写 1.1Kismet/BlueprintFunctionLibrary.h 1.2BPLibrary.generated.h的作用 1.3IImageWrapper.h 1.4 IImageWrapperModule.h 1.5 Engine/Texture2D.h 1.6CoreMinimal.h 二、定义图片/路径类型的枚举 2.1图片枚举类EImageType 2.2路径枚举类EPath…

Qgis 开发初级 《ToolBox》

Qgis 有个ToolBox 的,在Processing->ToolBox 菜单里面,界面如下。 理论上Qgis这里面的工具都是可以用脚本或者C 代码调用的。界面以Vector overlay 为例子简单介绍下使用方式。Vector overlay 的意思是矢量叠置分析,和arcgis软件类似的。点…

Docker可视化工具 Portainer 安装及配置

文章目录 拉取镜像安装和启动容器访问 Portainer设置密码完后即代表安装完毕安装完成 拉取镜像 rootyx-PowerEdge-R730:~# docker pull portainer/portainer Using default tag: latest latest: Pulling from portainer/portainer Digest: sha256:47b064434edf437badf7337e516…

Oracle视频基础1.1.4练习

1.1.4 dbb,ddabcPMON,SMON,LGWR,CKPT,DBWna5,b4,c2,d3,e1ad,a,c,b,eOracle instance,Oracle databaseSGA,background processcontrol file,data file,online redo file 以下是一篇关于 Oracle 基础习题 1.1.4 的博客: Oracle 基础习题解析:1.1.4 本篇文…

每日读则推(十四)——Meta Movie Gen: the most advanced media foundation models to-date

premiere n.首映,首次公演 v.首次公演(戏剧、音乐、电影) a.首要的,最早的 Today we’re premiering Meta Movie Gen: the most advanced media foundation models to-date. 迄今,到现在为止 …

uniapp实现【时间戳转换为日期格式(年-月-日 时-分-秒)】

这是接口返回的数据: 转换成日期格式 具体代码: <view class="time">{{formatDate(res.data.time)}

前端代码注释

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言类注释属性注释函数注释函数参数注释解构 & 函数返回结果 注释Vue Props 注释注释建议注释内容要清晰简洁注释类型避免不必要的注释采用一致的风格版本与更…

[ 问题解决篇 ] 解决windows虚拟机安装vmtools报错-winserver2012安装vmtools及安装KB2919355补丁 (附离线工具)

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

安娜的档案(Anna’s Archive) 镜像网站/国内最新可访问入口(持续更新)

安娜的档案&#xff08;Anna’s Archive&#xff09;是一个颇受关注的资源库。它涵盖了广泛的内容&#xff0c;可能包括各类文献、资料等。其特色在于丰富的信息储备和一定的系统性。安娜的档案&#xff08;Anna’s Archive&#xff09;用户可以从中获取多样的知识和数据&#…