request.exceptions.ConnectionError请求简单的URL

时间:2015-11-20 12:41:15

标签: python python-requests

我认为以下步骤是自我解释的,很简单。

但为什么Python requests会在这种情况下崩溃。

似乎重定向可能是原因?

但是我可以正确访问chrome / firefox页面,

我怎么能得到我的结果?感谢

(Pdb) requests.get(req_url)
*** requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(54, 'Connection reset by peer'))
(Pdb) req_url
'https://book.flypeach.com/default.aspx?chd=0&dep=2015-11-25&adt=1&des=OKA&langculture=zh-TW&ori=TPE&ao=B2CZHTW&bLFF=false&inf=0'

2 个答案:

答案 0 :(得分:2)

一种简单的方法是表现得更像Firefox。 您可以分析Firefox与网页的对话方式 然后发送相同的标头。接受cookie 也很有用。

以下python 2.7.10代码成功读取页面:

#!/usr/bin/python
# -*- coding: latin-1 -*-

import urllib2
from cookielib import CookieJar

MyURL = 'https://book.flypeach.com/default.aspx?chd=0&dep=2015-11-25&adt=1&des=OKA&langculture=zh-TW&ori=TPE&ao=B2CZHTW&bLFF=false&inf=0'
cj = CookieJar()

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders=[ ('User-Agent', r'Mozilla/5.0 (Windows NT 6.1; rv:34.0) Gecko/20100101 Firefox/34.0'),
                          ('Accept', r'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8,text/vnd.wap.wml;q=0.6'),
                          ('Accept-Language', 'de,en-US;q=0.7,en;q=0.3'),
                          ('Accept-Encoding', 'deflate'),
                          ('DNT', '1'),
                          ('Referer', r'https://book.flypeach.com'),
                          ('Host', 'book.flypeach.com'),
                          ('Cache-Control', r'max-age=0'),
                          ('Connection', r'keep-alive')
                        ] 

response = opener.open(MyURL)
html_result = response.read()
print html_result

答案 1 :(得分:0)

最后,我发现错误是由于openssl问题,

似乎我没有使用正确的openssl版本安装python 3.4.3。

所以我决定安装新的python版本3.5.0并使用正确的openssl路径。

CFLAGS="-I$(brew --prefix openssl)/include" \\
LDFLAGS="-L$(brew --prefix openssl)/lib" \\
pyenv install 3.5.0

并简单地添加了标记verify=False

resp = s.get(req_url, headers=self.headers, verify=False)

现在一切正常。