Python爬虫利器requests:数据传递、代理隧道与证书异常处理!

🔸 数据传递:params参数

在使用requests库时,最常用的参数之一就是params,它用于在GET请求中传递查询参数:

python 复制代码
import requests

# 构建URL
url = 'https://api.example.com/data'

# 定义查询参数
params = {
    'key1': 'value1',
    'key2': 'value2'
}

# 发送GET请求
response = requests.get(url, params=params)

# 打印响应内容
print(response.url)
print(response.json())

🔹 在这个例子中,params参数将查询参数添加到URL中,最终URL变成https://api.example.com/data?key1=value1&key2=value2。这非常适合用于过滤或搜索数据。


🔸 数据传递:data参数

data参数通常用于POST请求,传递表单数据:

python 复制代码
import requests

# 构建URL
url = 'https://api.example.com/login'

# 定义表单数据
data = {
    'username': 'myusername',
    'password': 'mypassword'
}

# 发送POST请求
response = requests.post(url, data=data)

# 打印响应内容
print(response.text)

🔹 使用data参数可以模拟表单提交,将数据以表单格式发送到服务器。这在登录、注册等操作中非常常见。


🔸 数据传递:json参数

json参数用于传递JSON格式的数据,通常用于API请求:

python 复制代码
import requests

# 构建URL
url = 'https://api.example.com/update'

# 定义JSON数据
json_data = {
    'id': 123,
    'status': 'active'
}

# 发送POST请求
response = requests.post(url, json=json_data)

# 打印响应内容
print(response.json())

🔹 json参数会自动将字典转换为JSON格式,并设置Content-Typeapplication/json。这在现代RESTful API中非常常用。


🔸 代理隧道的使用

在网络爬虫中,使用代理隧道可以隐藏真实IP,防止被封禁:

python 复制代码
import requests

# 构建URL
url = 'https://api.example.com/data'

# 定义代理
proxies = {
    'http': 'http://10.10.1.10:3128',
    'https': 'http://10.10.1.10:1080',
}

# 发送GET请求
response = requests.get(url, proxies=proxies)

# 打印响应内容
print(response.text)

🔹 使用proxies参数可以为请求指定代理服务器,有效隐藏真实IP,提高爬虫的稳定性。


🔸 证书异常处理

在进行HTTPS请求时,证书问题是常见的异常之一。我们可以通过设置verify参数来解决:

python 复制代码
import requests

# 构建URL
url = 'https://self-signed.badssl.com/'

try:
    # 发送请求,忽略证书验证
    response = requests.get(url, verify=False)
    print(response.text)
except requests.exceptions.SSLError as e:
    print(f"SSL证书错误: {e}")

🔹 设置verify=False可以忽略证书验证,但这并不安全。在生产环境中,建议使用有效的证书或指定CA证书路径:

python 复制代码
import requests

# 构建URL
url = 'https://api.example.com/data'

# 定义CA证书路径
cert_path = '/path/to/certfile.pem'

# 发送请求,指定CA证书路径
response = requests.get(url, verify=cert_path)
print(response.text)

🔹 通过指定verify参数为证书文件路径,可以确保请求的安全性,防止中间人攻击。


相关推荐
青铜发条13 分钟前
【python】python进阶——logging日志模块
python
躲着人群26 分钟前
次短路&&P2865 [USACO06NOV] Roadblocks G题解
c语言·数据结构·c++·算法·dijkstra·次短路
superlls31 分钟前
(计算机网络)JWT三部分及 Signature 作用
java·开发语言·计算机网络
无规则ai44 分钟前
动手学深度学习(pytorch版):第六章节—卷积神经网络(1)从全连接层到卷积
人工智能·pytorch·python·深度学习·cnn
一只鲲1 小时前
56 C++ 现代C++编程艺术5-万能引用
开发语言·c++
心动啊1211 小时前
支持向量机
算法·机器学习·支持向量机
秋难降1 小时前
优雅的代码是什么样的?🫣
java·python·代码规范
小欣加油2 小时前
leetcode 1493 删掉一个元素以后全为1的最长子数组
c++·算法·leetcode
liulilittle2 小时前
.NET反射与IL反编译核心技术
开发语言·数据库·c#·.net·反射·反编译·il
二闹2 小时前
聊天怕被老板发现?摩斯密码来帮你
后端·python