2012-10-17 66 views
0

我試圖在Python中使用機械化庫打開安全(https)網站。當我嘗試訪問網站時,服務器關閉連接並引發異常BadStatusLine。無法使用Python中的機械化連接到安全網站

我試圖修改標頭使用addheaders屬性,但沒有響應。

import mechanize 

br = mechanize.Browser() 
print 'opening page ...' 
resp = br.open('https://onlineservices.tin.nsdl.com/etaxnew/tdsnontds.jsp')  #this one works fine 
print 'ok' 

print 'opening page 2 ...' 
resp = br.open('https://incometaxindiaefiling.gov.in/portal/index.do')   #exception raised 
print 'ok' 

例外:

回溯(最近通話最後一個):文件 pydev_imports.execfile(文件,全局,當地人)#execute腳本文件 「Z:\ pyTax \ app_test.py」 ,第22行,在 resp = br.open('https://incometaxindiaefiling.gov.in/portal/index.do')
文件「build \ bdist.win32 \ egg \ mechanize_mechanize.py」,第203行,在 打開文件「build \ bdist.win32 \ egg \ mechanize_mechanize.py」,行230, in _mech_open文件「build \ bdist.win32 \ egg \ mechanize_o pener.py「, 第188行,打開文件」build \ bdist.win32 \ egg \ mechanize_http.py「, 行316,在http_request文件中 」build \ bdist.win32 \ egg \ mechanize_http.py「,第242行,在讀取文件 「build \ bdist.win32 \ egg \ mechanize_mechanize.py」,第203行,打開
文件「build \ bdist.win32 \ egg \ mechanize_mechanize.py」,行230,在 _mech_open文件「build \ bdist.win32 \ egg \ mechanize_opener.py「,打開文件 」build \ bdist.win32 \ egg \ mechanize_urllib2_fork.py「,行344,在_open 文件」build \ bdist.win32 \ egg \ mechanize_urllib2_fork .py「,第332行,在 _call_chain文件」build \ bdist.win32 \ egg \ mechanize_urllib2_fork.py「,行1170,在https_open文件中 」build \ bdist.win32 \ egg \ m 「dchan \ Python27 \ lib \ httplib.py」的文件「D:\ Python27 \ lib \ httplib.py」,第1031行,在getresponse response.begin()中的文件「echanize_urllib2_fork.py」,第1116行,在 。線407,在開始 版本,狀態,原因= self._read_status()文件 「d:\ Python27 \ LIB \ httplib.py」,線路371,在_read_status 提高BadStatusLine(線)httplib.BadStatusLine: ''

+0

機械化可能會嘗試連接到服務器拒絕/不支持的ssl協議版本。 – andrean

+0

你的代碼可以在我的電腦上正常工作,只有在訪問這個特定的網站時纔會出現這種情況,或者是否與其他人一樣? – root

+0

這個問題只發生在特定網站上,其他網站使用相同的代碼正常工作。這個網站在瀏覽器中完美打開。 – Catpro

回答

0

httplib.BadStatusLineisHTTPException的子類別。如果服務器響應我們不瞭解的HTTP狀態代碼,就會引發此問題。這是什麼導致你的問題。雖然我不完全確定修正,因爲您的代碼在我的電腦上正常工作。