首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python cookielib错误:403禁止

python cookielib错误:403禁止
EN

Stack Overflow用户
提问于 2017-12-28 18:28:52
回答 1查看 139关注 0票数 1

我正在学习python网络。我已经学会了套接字,现在我想学习python HTTP连接到HTTPServer,提取cookie等,我面临着这个问题与cookie提取。我试过谷歌,但没有找到解决方案,代码如下:

代码语言:javascript
复制
import cookielib
import urllib
import urllib2

ID_USERNAME= 'id_username'
ID_PASSWORD = 'id_password'
USERNAME = 'you@email.com'
PASSWORD = 'mypassword'
LOGIN_URL = 'https://bitbucket.org/account/signin/?next=/'
NORMAL_URL = 'https://bitbucket.org/'

def extract_cookie_info():
        cj=cookielib.CookieJar()
        login_data= urllib.urlencode({ID_USERNAME : USERNAME,ID_PASSWORD:PASSWORD})
        opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
        resp = opener.open(LOGIN_URL,login_data)
        for cookie in cj:
               print "First time cookie: %s ----> %s" %(cookie.name,cookie.value)
               print "Headers: %s"%resp.headers
        resp = opener.open(NORMAL_URL)
        for cookie in cj:
                print "Second time cookie: %s --> %s"%(cookie.name,cookie.value)
                print "Headers : %s"%resp.headers


if __name__ == '__main__':
         extract_cookie_info()

这是错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "e.py",line 27,in <module>
    extract_cookie_info()
  File "e.py",line 16,in extract_cookie_info
    resp=opener.open(LOGIN_URL,login_data)
  File "C:\Python27\lib\urllib2.py",line 435, in open
    response = meth(req,response)
  File "C:\Python27\lib\urllib2.py", line 548, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Python27\lib\urllib2.py", line 473, in error
    return self._call_chain(*args)
  File "C:\Python27\lib\urllib2.py", line 407, in _call_chain
    result = func(*args)
  File "C:\Python27\lib\urllib2.py", line 556, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 403: Forbidden
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-29 16:53:50

您将以帖子数据的形式发送登录详细信息,而不是作为url的一部分。

代码语言:javascript
复制
>>> url = 'https://bitbucket.org/account/signin/'
>>> user = 'foo@example.com'
>>> pwd = 'secret'
>>> d = urlencode({'ID_USERNAME': user, 'ID_PASSWORD': pwd})
>>> cj = cookielib.CookieJar()
>>> opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
>>> resp = opener.open(url + '?' + d)
>>> res.getcode()
200
>>> for cookie in cj:print cookie.name
... 
csrftoken
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48005772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档