鍍金池/ 問答/Java  Python/ python request 連接一個收費HTTPS代理IP失敗問題

python request 連接一個收費HTTPS代理IP失敗問題

當我不使用HTTPS或者使用使用別家的HTTPS代理是,都能正常,但是唯獨使用這家的HTTPS時發(fā)生握手失敗問題

proxies = {
    'http':"http://175.172.81.174:5324",
    'https':"http://175.172.81.174:5324",
}
import requests
r = requests.get("https://weibo.com/signup/signup.php",proxies=proxies,verify=False)

HTTPSConnectionPool(host='weibo.com', port=443): Max retries exceeded
with url: /signup/signup.php (Caused by SSLError(SSLError(1, u'[SSL:
UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:661)'),))

當使用下面代碼時,每次都能成功:

from OpenSSL import SSL

import socket
proxies = {
    'http':"http://175.172.81.174:5324",
    'https':"http://175.172.81.174:5324",
}
headers = """GET https://weibo.com/signup/signup.php HTTP/1.1
Host: weibo.com
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Referer: https://weibo.com/
Accept-Language: zh-CN,zh;q=0.8\r\n\r\n
"""
def verify_cb(conn, cert, errun, depth, ok):
        return True

server = 'weibo.com'
port = 443
PROXY_ADDR = ("175.172.81.174", 5324)
CONNECT = "CONNECT %s:%s HTTP/1.1\r\nConnection: close\r\n\r\n" % (server, port)

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(PROXY_ADDR)
s.send(CONNECT)
print s.recv(4096)      

ctx = SSL.Context(SSL.TLSv1_METHOD)
ctx.set_verify(SSL.VERIFY_PEER, verify_cb)
ss = SSL.Connection(ctx, s)

ss.set_connect_state()
ss.do_handshake()
cert = ss.get_peer_certificate()
print cert.get_subject()
ss.send(headers)
print ss.recv(3000)
ss.shutdown()
ss.close()

有辦法讓Requests正常使用這個代理IP嗎,如果你愿意幫我測試,請?zhí)峁┙o我你的IP,因為使用這個代理前需要授權

回答
編輯回答
孤影

'https':"http://175.172.81.174:5324"
改為'https':"https://175.172.81.174:5324"

2017年4月27日 16:29
編輯回答
浪蕩不羈

verify=True

2017年3月7日 01:18