news 2026/3/1 9:14:35

[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/28 2:21:16

08.05.01.tiptop webserver接口篇(制作接口:自定义查询)

本页目录: 1、写代码2、配置3、测试 写代码 修改注册服务接口代码:/u1/topprod/tiptop/aws/4gl/aws_ttsrv2_service.4gl 添加發佈 Service Function 段落 ----------------------- begin waichi001 --------------WHEN "aws_customizeQueryData&…

作者头像 李华
网站建设 2026/2/23 14:45:42

05. 如何实现原理图比较?| OrCAD X Capture CIS 设计小诀窍第二季

OrCAD X Capture CIS设计小诀窍系列--如何实现原理图比较背景介绍:我们在进行原理图设计时,经常需要对原理图进行版本更新。而如果设计师对最新版本的原理图不满意,想要回溯原理图修改了哪些内容,则需要进行原理图比较。而通过Cap…

作者头像 李华
网站建设 2026/2/28 22:40:21

Spring Boot的多环境配置

在开发Spring Boot项目中,如果我们想把自己的项目开源到Github仓库,application.yml中的某些配置比如MySQL、Redis的账户密码,还有的就是现在引入AI之后的一些密钥,可能都不太愿意推送到仓库去。 这个时候,可以通过配…

作者头像 李华
网站建设 2026/2/26 23:02:46

【双指针】判断是否为回文字符串

求解代码 public boolean judge(String str) {int n str.length(); // 获取字符串长度&#xff0c;用于定义右指针初始位置// 双指针遍历for (int i 0, j n - 1; i < j; i, j--) {// 逐位对比首尾字符&#xff0c;只要有一位不一致&#xff0c;直接判定不是回文if (str.c…

作者头像 李华
网站建设 2026/2/25 18:43:10

=========

---------

作者头像 李华