news 2026/2/27 14:02:42

[Web自动化] 爬虫之网络请求

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[Web自动化] 爬虫之网络请求

9.4 爬虫之网络请求

9.4.1 使用requests库发送HTTP请求

requests库提供了丰富的功能来发送HTTP请求,并处理响应。以下是一些额外的示例和说明。
发送带参数的GET请求
如果你需要向服务器发送查询参数,可以将它们作为字典传递给params参数。

importrequests params={'key1':'value1','key2':'value2'}response=requests.get('http://httpbin.org/get',params=params)print(response.url)# 输出将包含查询参数:http://httpbin.org/get?key1=value1&key2=value2

发送POST请求
POST请求通常用于向服务器提交数据。你可以将数据作为字典传递给data参数(对于表单数据)或作为字节串传递给json参数(对于JSON数据)。

importrequests# 发送表单数据data={'key':'value'}response=requests.post('http://httpbin.org/post',data=data)# 发送JSON数据json_data={'key':'value'}response=requests.post('http://httpbin.org/post',json=json_data)

设置请求头
你可以通过headers参数自定义请求头,这对于模拟不同的浏览器或绕过某些服务器的检查非常有用。

importrequests url='http://example.com'headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3','Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8','Accept-Language':'en-US,en;q=0.5','DNT':'1',# Do Not Track header'Connection':'keep-alive'}response=requests.get(url,headers=headers)

处理响应
一旦你发送了请求,requests库将返回一个Response对象。你可以使用这个对象来访问响应的内容、状态码、头部等信息。

response=requests.get(url)# 访问响应内容print(response.text)# 文本内容print(response.content)# 原始内容(字节串)# 访问状态码print(response.status_code)# 访问响应头print(response.headers)# 检查请求是否成功ifresponse.status_code==200:print("请求成功!")else:print("请求失败,状态码:",response.status_code)

会话(Session)对象
如果你需要向同一个服务器发送多个请求,并且希望保持某些参数(如Cookies)在请求之间持久化,可以使用requests.Session()对象。

importrequests Session=requests.Session()# 发送第一个请求,设置Cookiesresponse=Session.get('http://httpbin.org/Cookies/set/SessionCookie/123456789')# 发送第二个请求,自动携带之前的Cookiesresponse=Session.get('http://httpbin.org/Cookies')print(response.text)# 输出将包含'SessionCookie: 123456789'
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/23 10:23:50

one_channel_hub 移植到CH584M MCU平台(移除WiFi/网络相关代码)

one_channel_hub 移植到CH584M MCU平台(移除WiFi/网络相关代码) 一、移植前准备 1. 核心背景 CH584M特性:沁恒微的低功耗MCU,基于RISC-V架构,内置BLE 5.0,无WiFi外设,需适配其裸机/轻量级RTOS开…

作者头像 李华
网站建设 2026/2/21 20:56:25

JDK版本的区别

在IDEA中新建Spring Boot项目时,需要选择JDK版本,这里小记一下: Oracle OpenJDK Oracle 官方维护的开源免费JDK,Java标准实现。 Amazon Corretto 亚马逊基于 OpenJDK 定制的免费、长期支持JDK。 JetBrains Runtime JetBrains&…

作者头像 李华
网站建设 2026/2/25 14:22:34

2024年AI原生应用开源数据集推荐:高质量训练数据获取+处理全攻略

2024 年 AI 原生应用开源数据集推荐:高质量训练数据获取 处理全攻略 摘要/引言 在当今 AI 蓬勃发展的时代,高质量的数据集对于训练出强大且精准的 AI 原生应用至关重要。然而,如何获取合适的开源数据集,并对其进行有效的处理&a…

作者头像 李华
网站建设 2026/2/21 20:01:42

Java计算机毕设之基于Springboot+MySQ基于springboot的个人健康管理系统基于SpringBoot + Vue的个人运动健康管理系统(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/2/26 11:33:49

提示工程架构师如何解决prompt优化的瓶颈?这篇给你答案!

从瓶颈到突破:提示工程架构师的Prompt优化实战指南 引言:你是否也在经历这些Prompt优化的“至暗时刻”? 凌晨三点,你盯着屏幕上的LLM输出,第17次修改Prompt——从“写一篇感人的产品文案”到“写一篇面向职场妈妈的婴…

作者头像 李华
网站建设 2026/2/22 10:20:58

【开题答辩全过程】以 基于web的生鲜农产品信息管理系统为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人,语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

作者头像 李华