requests代理使用以及其他操作

本文详细介绍了requests模块的使用,包括SSL证书处理、超时设置、异常处理和文件上传。重点讨论了代理的运用,解释了为何需要代理,提供了代理服务器的实例,并简单介绍了如何搭建和使用代理池。同时,文中分享了requests在实际应用中的案例,如Peer Video和AutoHome的抓取,涉及到视频解析、多线程爬取以及网页内容解析等技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、requests其他操作

1.requests之ssl
https=http+ssl(ssl证书:第三方证书):传输过程中加密了,可以截获到。

大部分网站都是https,需要证书验证,代码怎么改进呢?
解决:
1、强制使用http连接不验证证书

verify=False

2、携带上证书

cert=('/path/server.crt', '/path/key')

示例:

import requests
respone = requests.get('https://www.12306.cn')  # 如果是ssl请求,首先检查证书是否合法,不合法则报错,程序终端
# 改进1:去掉报错,但是会报警告
import requests
respone=requests.get('https://www.12306.cn',verify=False) #不验证证书,报警告,返回200
print(respone.status_code)
# 改进2:去掉报错,并且去掉警报信息
import requests
from requests.packages import urllib3
urllib3.disable_warnings() #关闭警告
respone=requests.get('https://www.12306.cn',verify=False)
print(respone.status_code)
# 改进3:加上证书
# 很多网站都是https,但是不用证书也可以访问,大多数情况都是可以携带也可以不携带证书
# 知乎、百度等都是可带可不带
# 有硬性要求的,则必须带,比如对于定向的用户,拿到证书后才有权限访问某个特定网站
import requests
respone = requests.get('https://www.12306.cn',
                       cert=('/path/server.crt',
                             '/path/key'))
print(respone.status_code)

2.requests之超时设置
加上timeout参数

import requests
respone=requests.get('http://127.0.0.1:8000',timeout=3)
print(respone.status_code)

3.requests之异常处理
加上try...except...

import requests
from requests.exceptions import *

try:
    respone = requests.get('http://127.0.0.1:8000', timeout=3)
    print(respone.status_code)
except ReadTimeout:
    print('===:')
except ConnectionError:  # 网络不通
    print('-----')
except Timeout:
    print('aaaaa')
except RequestException
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妍婧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值