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


相关推荐
deckcode7 分钟前
xpath定位
爬虫·功能测试·网络爬虫·web测试
KangkangLoveNLP8 分钟前
手动实现一个迷你Llama:使用SentencePiece实现自己的tokenizer
人工智能·深度学习·学习·算法·transformer·llama
独好紫罗兰13 分钟前
洛谷题单3-P1420 最长连号-python-流程图重构
开发语言·python·算法
kingmax5421200817 分钟前
深入解析:使用Python爬取Bilibili视频
开发语言·python·音视频
申雪菱27 分钟前
Scheme语言的数据挖掘
开发语言·后端·golang
程序员一诺32 分钟前
【Flask开发】嘿马文学web完整flask项目第1篇:简介【附代码文档】
后端·python·flask·框架
Aerkui37 分钟前
Python列表(List)深度解析
开发语言·python
柯ran37 分钟前
数据结构|排序算法(一)快速排序
数据结构·算法·排序算法
Bruce_Liuxiaowei39 分钟前
基于Flask的MBA考生成绩查询系统设计与实现
后端·python·flask
啊阿狸不会拉杆40 分钟前
第二十章:Python-Matplotlib库实现函数可视化
开发语言·python·matplotlib