【发布时间】:2014-11-24 21:01:21
【问题描述】:
在尝试通过请求访问 this site 时,我收到:
('Connection aborted.', error(54, 'Connection reset by peer'))
我也试过通过mechanize和urllib访问网站,都失败了。但是 cURL 可以正常工作(代码见结尾)。
我尝试了 requests.get() 与参数组合 verify=True,stream=True 并且我还尝试了带有 cURL 标头的请求。
我试图转移到 urllib / Mechanize 作为替代方案,但两者都给出了相同的错误。
我的请求代码如下:
import requests
import cookielib
url = "https://datamuster.marketdatasuite.com/Account/LogOn?ReturnUrl=%2fProfile%2fList"
header = {
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Encoding':'gzip,deflate,sdch',
'Accept-Language':'en-US,en;q=0.8',
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36'
}
jar = cookielib.CookieJar()
s = requests.Session()
s.headers.update(header)
r = s.get(url, cookies=jar)
带有标题的 cURL 测试:
$ curl -v -I -H "....Testing: Header...." https://datamuster.marketdatasuite.com/Account/LogOn?ReturnUrl=%2fProfile%2fList
* Hostname was NOT found in DNS cache
* Trying 54.252.86.7...
* Connected to datamuster.marketdatasuite.com (54.252.86.7) port 443 (#0)
* TLS 1.2 connection using TLS_RSA_WITH_AES_128_CBC_SHA256
* Server certificate: datamuster.marketdatasuite.com
* Server certificate: COMODO SSL CA
* Server certificate: AddTrust External CA Root
> HEAD /Account/LogOn?ReturnUrl=%2fProfile%2fList HTTP/1.1
> User-Agent: curl/7.37.1
> Host: datamuster.marketdatasuite.com
> Accept: */*
> ....Testing: Header....
>
< HTTP/1.1 200 OK
【问题讨论】:
标签: curl python-requests urllib http-get mechanize-python