我制作了一些代码来访问特定站点而不是用户。它与自动登录程序非常相似。我的程序从用户那里接收用户名和密码,并尝试使用数据和登录访问 url,返回登录结果。
这是代码。
from urllib import urlencode
from urllib2 import Request
from ClientCookie import urlopen, install_opener, build_opener
httpheaders = {'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1;)'}
y_url1 = 'http://www.xxx.kr/papp.jsp'
y_url2 = 'https://im.xxx.kr/sso/auth'
def check_valid_user(user_id, user_pw):
values = {'ssousername': user_id, 'password': user_pw}
data = urlencode(values)
req = Request(y_url1, data, httpheaders)
response = urlopen(req)
the_page = response.read()
token = the_page.split('"site2pstoretoken"')[1].split('"')[1]
values = {'ssousername': user_id, 'password': user_pw, 'site2pstoretoken' : token}
data = urlencode(values)
req = Request(y_url2, data, httpheaders)
response = urlopen(req)
the_page = response.read()
install_opener(build_opener())
if the_page.find('Cyber') == -1:
return False
else:
return True
当我在我的 Windows 桌面上运行这个程序时,它运行良好。
但是当我在我的 ubuntu apache 服务器上运行这个程序时,它不起作用。(ubuntu 11.04,python 2.7.1)
我打开 django python shell 并尝试逐行调试 python manage.py shell
response = urlopen(req)
此时,出现错误。
>>>response = urlopen(req)
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/ClientCookie/_urllib2_support.py", line 824, in urlopen
return _opener.open(url, data)
File "/usr/lib/python2.7/urllib2.py", line 397, in open
response = meth(req, response)
File "/usr/lib/python2.7/dist-packages/ClientCookie/_urllib2_support.py", line 626, in http_response
"http", request, response, code, msg, hdrs)
File "/usr/lib/python2.7/urllib2.py", line 429, in error
result = self._call_chain(*args)
File "/usr/lib/python2.7/urllib2.py", line 369, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/dist-packages/ClientCookie/_urllib2_support.py", line 154, in http_error_302
return self.parent.open(new)
File "/usr/lib/python2.7/urllib2.py", line 391, in open
response = self._open(req, data)
File "/usr/lib/python2.7/urllib2.py", line 409, in _open
'_open', req)
File "/usr/lib/python2.7/urllib2.py", line 369, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/dist-packages/ClientCookie/_urllib2_support.py", line 724, in https_open
return self.do_open(httplib.HTTPSConnection, req)
File "/usr/lib/python2.7/dist-packages/ClientCookie/_urllib2_support.py", line 694, in do_open
raise URLError(err)
URLError: <urlopen error [Errno 1] _ssl.c:499: error:14077417:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert illegal parameter>
有什么问题?请帮我.....