Python网络爬虫:使用Requests库精通网络请求

源码分享
https://docs.qq.com/sheet/DUHNQdlRUVUp5Vll2?tab=BB08J2

网络爬虫依赖于强大的库来处理HTTP请求,而Python的Requests库是构建网络爬虫时的首选工具之一。本篇博客将向你介绍如何使用Requests库来发送HTTP请求,并通过具体的代码案例来演示其功能和强大之处。

介绍Requests库

Requests是一个简单而优雅的HTTP库,它允许你以人类可读的方式发送HTTP/1.1请求。无需手动添加查询字符串到URL,或者表单编码POST数据 —— Requests库会自动处理这些操作。

安装Requests库

在开始之前,确保你已经安装了Requests库,如果没有,可以通过pip进行安装:

pip install requests

发送简单的GET请求

最基础的操作是发送一个GET请求到一个网页,让我们从这里开始。

import requestsresponse = requests.get('https://httpbin.org/get')
print(response.text)

以上代码会获取​​https://httpbin.org/get​​的内容,并打印出来。

添加查询参数

如果你需要发送带参数的GET请求,Requests让这变得非常简单。

payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.get('https://httpbin.org/get', params=payload)
print(response.url)

Requests会将参数字典转换为URL编码的查询字符串。

发送POST请求

发送POST请求同样简单,如果你想发送一些编码为表单形式的数据,可以这样做:

payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=payload)
print(response.text)

Requests会自动将字典编码为表单格式。

处理响应内容

Requests可以帮你处理JSON响应内容,无需手动解析JSON。

response = requests.get('https://httpbin.org/get')
if response.status_code == 200:data = response.json()print(data)

​response.json()​​方法会解析JSON响应内容并返回一个字典。

定制请求头

你可以发送自定义的HTTP头部到服务器,这在处理爬虫时非常有用,例如模拟浏览器发送请求。

headers = {'user-agent': 'my-app/0.0.1'}
response = requests.get('https://httpbin.org/get', headers=headers)
print(response.text)

使用会话保持Cookies

如果需要在请求之间保持某些状态(比如Cookies),你可以使用Session对象。

s = requests.Session()
s.get('https://httpbin.org/cookies/set/sessioncookie/123456789')
response = s.get('https://httpbin.org/cookies')print(response.text)

会话可以保持Cookie跨请求。

处理超时

我们通常希望对爬虫的请求时间有所限制,以保证程序不会因为等待一个响应而卡住。

from requests.exceptions import Timeouttry:response = requests.get('https://httpbin.org/delay/2', timeout=1)print(response.text)
except Timeout:print('The request timed out')

​timeout​​参数告诉Requests最多等待多少秒。

总结

Requests库是构建Python爬虫的有力工具,它简化了HTTP请求的发送与处理。本文介绍了发送GET和POST请求、处理响应、定制请求头、使用会话及处理超时等基础知识,为你的爬虫之旅奠定了坚实基础。

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

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

相关文章

实用区块链应用:去中心化投票系统的部署与实施

一、需求分析背景 随着技术的发展,传统的投票系统面临着越来越多的挑战,如中心化控制、透明度不足和易受攻击等问题。为了解决这些问题,我们可以利用区块链技术去中心化、透明性和安全性来构建一个去中心化投票系统。这样的系统能够确保投票过…

六、回归与聚类算法 - 岭回归

目录 1、带有L2正则化的线性回归 - 岭回归 1.1 API 2、正则化程度的变化对结果的影响 3、波士顿房价预测 线性回归欠拟合与过拟合线性回归的改进 - 岭回归分类算法:逻辑回归模型保存与加载无监督学习:K-means算法 1、带有L2正则化的线性回归 - 岭回…

蓝桥杯C++竞赛常用库函数介绍

文章目录 前言一、二分查找1. 二分查找的前提2.binary_search函数3.lower_bound函数和upper_bound函数4.蓝桥杯例题 二、最值查找1. min和max函数2.min_element和max_element函数3.nth_element函数4.蓝桥杯例题 三、排序1.sort函数2.sort自定义比较函数,或lambda表达式(匿名函数…

流量分析——陇剑杯 2021【签到、jwt】

目录 签到1、攻击者正在进行的可能是什么协议的网络攻击 jwt1、该网站使用了______认证方式。前置知识:解: 2、黑客绕过验证使用的jwt中,id和username是3、黑客获取webshell之后,权限是什么4、黑客上传的恶意文件文件名是5、黑客在…

Sora没用上!国产AI创作恐怖电影:《生化危机:重生》下

Sora没用上!国产AI创作恐怖电影:《生化危机:重生》下 丧尸围城,世界沦陷,爱丽丝是拯救这个世界的最后一剂解药,然而。。。 《生化危机:重生》(下):在战斗的最…

物麒平台自定义事件代码修改流程

是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,群赠送蓝牙音频,DSP音频项目核心开发资料, 1 配置工具对应关系 2 事件处理 3 事件定义 4

微服务远程调用Feign

目录 RPC概述 什么是Feign? Ribbon&Feign对比 Feign的设计架构 Spring Cloud Alibaba快速整合Feign Spring Cloud Feign扩展 日志配置 契约配置 通过拦截器实现参数传递 自定义拦截器实现认证逻辑 超时时间配置 RPC概述 微服务之间如何方便优雅的实…

来分析两道小题

一、源码 二、分析 首先它会接两个参数一个是id一个是ps,传递的话会包含一个flag.php,然后数据库连接,之后传递过滤,然后查询,如果查到了就会取id,取出来看是不是跟adog一样,如果是它告诉你账号…

算法------(12)Trie树(字典树)

例题:(1)Acwing 835. Trie字符串统计 Trie树是一个可以高效存储查询字符串的数据结构。将一个字符串的每一个字符作为一个根节点,从字符串头到字符串尾连接起来。因此我们可以把每一个字符串存储为一个节点,记录其子节…

C 嵌入式系统设计模式 09:硬件适配器模式

本书的原著为:《Design Patterns for Embedded Systems in C ——An Embedded Software Engineering Toolkit 》,讲解的是嵌入式系统设计模式,是一本不可多得的好书。 本系列描述我对书中内容的理解。本文章描述访问硬件的设计模式之二&…

性能测试的几个指标范围(CPU,内存,IO,网络)

性能测试中,对服务端的指标监控也是很重要的一个环节。通过对各项服务器性能指标的监控分析,可以定位到性能瓶颈。 后端性能指标有 CPU,内存,网络,jvm,I/O 等等 分析思路 整体系统 CPU 利用率 内存利用…

VMware虚拟机内部打开错误

修改vmci0.present"TRUE" 找到虚拟机相对应的"***.VMX文件";用记事本打开它,找到这一行:vmci0.present"TRUE"将TRUE改为 FALSE或者直接将这行删除。(只是临时解决兼容性问题)。重启VM虚拟机。

【论文精读】Diffusion Transformer(DiT)

摘要 以往的Diffusion模型主要以卷积UNet作为主干网络,本文发现U-Net的归纳偏差对Diffusion模型的性能并不是至关重要的,可以用Transformer等取代。通过利用其他视觉方向成熟的Transformer方案和训练方法,Diffusion模型可以从这些架构中获益&…

一篇文章搞懂CDN加速原理

目录 一、什么是CDN CDN对网络的优化作用主要体现在以下几个方面: 二、CDN工作原理 CDN网络的组成元素: 三、名词解释 3.1 CNAME记录(CNAME record) 3.2 CNAME域名 3.3 DNS 3.4 回源host 3.5 协议回源 一、什么是CDN CD…

【SpringBoot3】Spring Security 常用配置总结

注:本文基于Spring Boot 3.2.1 以及 Spring Security 6.2.1 相关文章 【SpringBoot3】Spring Security 核心概念 【SpringBoot3】Spring Security 常用注解 【SpringBoot3】Spring Security 详细使用实例(简单使用、JWT模式) 【SpringBoot3】…

【MATLAB GUI】 4. 坐标区和表

看B站up主freexyn的freexyn编程实例视频教程系列36Matlab GUI的学习笔记 文章目录 坐标区表 坐标区 任务要求设计一个图像显示界面,根据选定的周期做出相应的sin函数图像 使用坐标区、弹出式菜单、普通按钮设计页面,弹出式菜单string设置为1、2、3、4代…

linux定时清理缓存

1、创建清理缓存脚本2、脚本授权3、创建自动任务4、查看自动任务是否添加成功 1、创建清理缓存脚本 vim cache_clean.sh #!/bin/bash #每天清除一次内存buff/cache缓存 echo "开始清除缓存" sync; #写入硬盘,防止数据丢失 for i in $(seq 3);do sudo sh…

【Linux系统化学习】深入理解匿名管道(pipe)和命名管道(fifo)

目录 进程间通信 进程间通信目的 进程间通信的方式 管道 System V IPC(本地通信) POSIX IPC(网络通信) 管道 什么是管道 匿名管道 匿名管道的创建 匿名管道的使用 匿名管道的四种情况 匿名管道的五种特性 命名管道 …

iOS总体框架介绍和详尽说明

iOS总体框架介绍和详尽说明 一、iOS是什么?1.iOS简述2.iOS界面 二、iOS总体框架介绍和详尽说明1.iOS的框架层级1. 核心操作系统层(Core OS layer)1.1 Accelerate Framework1.2 Core Bluetooth Framework1.3 External Accessory Framework1.4 …

【wails】(4):使用wails做桌面应用开发,整合chatgpt-web项目做前端,进行本地开发,web端也可以连调,使用websocket实现

1,视频地址 【wails】(4):使用wails做桌面应用开发,整合chatgpt-web项目做前端,进行本地开发,web端也可以连调,使用websocket实现 2,演示效果 启动先是报500 错误&#…