[1248]requests在电脑开启代理的情况下无法正常发送请求

requests.exceptions.SSLError: HTTPSConnectionPool(host=‘www.pinterest.com’, port=443): Max retries exceeded with url: /resource/UserRegisterResource/create/ (Caused by SSLError(SSLError(1, ‘[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1076)’)))

90%的人可能都会出现前面的错误,通常加个time.sleep(1)减慢访问速度就行。然而9%的人通常会因为使用了代理而选择在系统环境中将代理设为空,或者在发送请求的时候将代理设为空,例如

os.environ["NO_PROXY"]="baidu.com, google.com"

(你需要的域名)这种或者是这种

# 代理为国外代理(就是指定代理进行访问)
proxy={"https": "https://122.148.122.111:90", "http": "http://122.148.122.111:90"}
requests.get(url, proixies=proxy)

然而我竟是那剩下1%的人。

问题描述

我的需求是必须要把电脑的代理开着。网络的配置是公司有外网环境可以上外网,但是我需要一个和公司独立的代理IP,于是开启了其他的代理工具。问题就在于开启代理工具后,一切都正常,IP也正常,各种应用都正常。就是使用requests的时候会出现标题所示错误。

一顿Google百度大法不能说毫无结果,只能说人的痛苦并不相通,唯一有类似状况的一个情况和我也似乎不太相同,去研究公司的防火墙白名单太复杂了,自己的电脑防火墙都关 了。贴个连接:为什么在系统设置中设置了代理后,自己写的python爬虫程序访问网络时还需要设置代理?

一点结果都没有,curl也是不能返回结果。最后部门经理让我试试urllib。requests就是urllib封装的,结果居然神奇的能运行,去找了一下两个库之间的区别,但是基本都只能浅层的说说大概区别是啥,完全没有我要的底层逻辑原理,想来也不会有人去研究这个,除非requests库或者相关开发底层的家伙。

感觉全球只有自己在面临这个问题的时候,也太tm痛苦了,不懂底层原理,也没有任何指导方向

算了,就这样吧!咱能跑就行~

req = urllib.request.Request(u, headers=headers)
file = urllib.request.urlopen(req, timeout=15)
data = file.read().decode('iso-8859-1')

后续的更新来了,问题完全得到了解决(解决方法)

和前面的第二个方法类似,通过设置代理,来进行访问。因为本地 开启梯子后,梯子默认会把整个系统的流量指向电脑的某个端口,然后再由梯子进行接收往外转发,所以我们只需要在Python的requests请求中设置代理,即可将脚本请求转向梯子。但是这个代理并非梯子节点的代理,而是系统的代理。

打开梯子后,在设置中找到对应的代理端口(通常是10809)然后加在代码中即可。

proxy = {'http': '127.0.0.1:10809', 'https': '127.0.0.1:10809'}
r = requests.post(u, json=data, headers=headers, proxies=proxy)

搞定

来源:https://blog.csdn.net/big__banana/article/details/123873178

参考资源链接:[微信小程序数据爬取:Python结合Charles实战解析](https://wenku.csdn.net/doc/6401ad19cce7214c316ee494?utm_source=wenku_answer2doc_content) 为了在抓取微信小程序数据时,正确配置SSL代理并处理加密请求,首先需要确保你已经正确安装并启动了Charles工具。以下是具体步骤和策略: 1. 配置SSL代理: - 在Charles中打开Proxy设置,确保HTTP Proxy和SSL Proxy都设置为监听在8888端口(或者自定义的端口)。 - 在Charles菜单栏选择‘Tools’然后点击‘Map Local’,配置SSL代理证书,这一步骤通常需要在Windows系统上操作,以便Charles能够捕获HTTPS流量。 2. 安装Charles根证书到手机: - 在iPhone上,打开设置应用,找到Wi-Fi选项,然后选择当前连接的网络,找到HTTPS部分,点击‘配置代理’,选择手动,服务器填入Charles运行的电脑IP地址,端口选择8888,认证选择Off。 - 打开Safari浏览器访问‘chls.pro/ssl’,点击下载Charles Root Certificate,然后在设置中找到该证书进行安装。 3. 处理加密请求: - 对于加密的数据流,可以通过Charles的‘Map Local’功能来重定向请求到本地,便于分析和修改。 - 如果是参数加密,需要分析微信小程序的请求方式,可能涉及到模拟登录和获取session等信息,将这些信息作为请求头或参数传递。 - 使用Charles的‘Edit Request’功能可以实时修改请求参数和数据,也可以查看完整的请求和响应数据包,便于后续的数据分析和处理。 4. 使用Python进行数据分析: - 利用requests库或相似的库发送网络请求,通过Charles捕获的数据进行模拟。 - 对获取的JSON或XML格式数据进行解析,并针对加密数据进行解密或验证处理。 - 在Python中可以通过分析抓包的数据包,找出数据的规律,编写相应的代码逻辑来处理加密的数据。 通过上述步骤和策略,可以有效地使用Python结合Charles工具来抓取和分析微信小程序的网络请求数据。学习如何配置SSL代理和处理加密请求是关键,这不仅能够帮助你获取数据,还能加深你对网络请求和加密通信的理解。为了获得更全面的技能,建议深入阅读《微信小程序数据爬取:Python结合Charles实战解析》一文,其中详细描述了每一个步骤的操作细节,为你的项目提供更深入的指导。 参考资源链接:[微信小程序数据爬取:Python结合Charles实战解析](https://wenku.csdn.net/doc/6401ad19cce7214c316ee494?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值