python爬虫教程:requests模块用法

news/2024/7/19 10:59:38 标签: python, 爬虫, 开发语言

requests 是 Python 中一个非常流行的第三方 HTTP 请求库,其提供了便捷的 HTTP 请求方式和丰富的高级功能。接下来,我将从基础使用、请求结构、请求方法、自定义请求头、请求参数、会话和 Session、代理、SSL 验证、文件上传、重定向等方面深入介绍 requests 模块的使用。

1. 基础使用:

python">import requests

response = requests.get('https://www.baidu.com')
print(response.content)  # 打印出请求返回的结果
print(response.status_code)  # 打印出请求的状态码

2. 请求结构:

requests 的请求结构由 Request 和 Response 两个类构成,其中 Request 表示请求信息,Response 表示响应信息。

python">import requests
url = 'http://www.example.com'
headers = {'User-Agent':'Mozilla/5.0'}
req = requests.Request('GET',url,headers=headers)
prepped = req.prepare()
res = requests.Session().send(prepped)
print(res.text)

3. 请求方法:

requests 支持多种请求方法,包括 GET、POST、PUT、DELETE、HEAD、OPTIONS 等。

python">import requests
# 发送 GET 请求
response = requests.get('https://api.github.com')
# 发送 POST 请求
response = requests.post('https://httpbin.org/post', data={'key': 'value'})

4. 自定义请求头:

可以使用 headers 参数来设置请求头信息。

python">import requests

headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.get('https://www.baidu.com', headers=headers)

5. 请求参数:

可以使用 params 参数来设置请求参数信息。

python">import requests

payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.get('https://www.baidu.com', params=payload)

6. 会话和 Session:

在 requests 中使用会话和 Session 可以实现更高效的请求操作,可以在多个请求之间共享 Cookie、缓存、身份验证等信息。

python">import requests

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

7. 代理:

可以使用 proxies 参数来设置代理信息。

python">import requests

proxies = {'http': 'http://10.10.1.10:3128', 'https': 'http://10.10.1.10:1080'}
response = requests.get('https://www.baidu.com', proxies=proxies)

8. SSL 验证:

可以使用 verify 参数来验证 SSL 证书信息。

python">import requests

response = requests.get('https://www.baidu.com', verify='/path/to/certfile')

9. 文件上传:

可以使用 files 参数来上传文件。

python">import requests
#Python小白学习交流群:711312441
url = 'http://httpbin.org/post'
files = {'file': open('test.txt', 'rb')}
response = requests.post(url, files=files)

10. 重定向:

使用 allow_redirects 参数来开启或关闭重定向功能。

python">import requests

response = requests.get('http://github.com', allow_redirects=False)

以上就是 requests 模块的由浅入深的介绍。requests 的优点在于其简洁的 API 接口和丰富的高级功能,可以帮助我们轻松地完成 HTTP 请求操作。


http://www.niftyadmin.cn/n/445171.html

相关文章

DolphinScheduler任务调度工具

任务调度:系统为了自动完成特定任务,在约定的特定时刻去执行任务的过程 分布式调度: 分布性:每个部分可以独立部署,服务之间通过网络通信伸缩性:每个部分可以集群部署,动态伸缩扩容高可用 jd…

13年测试老鸟,带你详探服务端的接口测试,测试内卷之路...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 服务器的接口测试…

win11系统提示msvcp140.dll丢失的三个解决方法,简单实用

Win11系统在运行photoshop或其他软件,游戏的时候,电脑提示“找不到msvcp140.dll”,“msvcp140.dll丢失”,“无法定位输入点msvcp140.dll”等问题,都是由于Windows11系统中的msvcp140.dll文件丢失或者损坏了。 问题场景…

MySQL数据库--事务

MySQL数据库---事务 前言一、事物的概念二、事务的ACID特点三、Mysql及事务隔离级别(四种)四、事务控制语句总结 前言 MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中, 要删除一个人员&…

2306d的闭包问题

原文 首先,D的闭包是个好主意.我使用了C的成员函数指针;它们在语法上很糟糕,但概念很好,而闭包更好. D的闭包有些问题,有些是明显错误,有些是不应该不在语言中的改进. 不能调用某些闭包 这很奇怪,但这是真的. 一个问题是常和不变目前没有扩展到闭包环境.要求常和不变的传递性…

思维决定发展,软件测试人也不例外

最近特别懒,不想码字,原本写作就很差,更是退化严重。社招和校招面试过很多人,从十年前自己还很弱的时候学着面试,到数百次面试积累之后,面对候选人的时候,我的内心依然有些许紧张,非…

产品如何有效把控产品上线质量

很多人乍看这个标题,可能有些惊讶。产品上线质量不是由测试来主要负责的么,怎么产品也需要来把控这个事情? 诚然,从具体分工而言,产品的线上质量主要由测试来负责,产品按时按量完成由项目项目经理把控。但…

(一)图像检测中的评价指标

文章目录 浅谈图像检测中的评价指标有哪些细分(研究一下其含义与意义) 1、准确率(Accuracy)2、精确率(Precision)3、召回率4、F1值5、AP值6、mAP值7、IOU(Intersection over Union) …