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参数为证书文件路径,可以确保请求的安全性,防止中间人攻击。


相关推荐
(Charon)2 小时前
【C++】定时器进阶:使用最小堆管理定时任务
c++·算法
hansang_IR3 小时前
【题解】 [省选联考 2021 A/B 卷] 卡牌游戏
c++·算法
2601_962298273 小时前
Python与Selenium结合的Web自动化测试全流程实践教程
自动化测试·python·selenium·web测试·pageobjectmodel
这个DBA有点耶3 小时前
COUNT慢不是因为用了*,是这5个原因——1000万行数据实测+执行计划深度解析
数据库·mysql·算法
贾伟康3 小时前
【口算王|01】HarmonyOS ArkTS 口算题生成实战:按年级、运算类型和难度生成可控题目
算法·harmonyos·arkts·随机生成·口算题
lzx_0023 小时前
C++11(一)
开发语言·c++·算法
天衍四九-3 小时前
第一章:从 LLM 到 Agent —— DeepSeek Harness 入门
网络·数据库·人工智能·python
529宝宝起名网3 小时前
用 Python 实现名字寓意评分算法:基于 NLP 语义分析的名字内涵深度评估
python·算法·自然语言处理
2601_962298673 小时前
Python:对象缓存优化机制(CPython)
python·性能优化·内存优化·cpython·对象缓存
未来之窗软件服务3 小时前
计算机二级[英文]-C 字符串移动—东方仙盟
c语言·开发语言·仙盟创梦ide·东方仙盟