- 论坛徽章:
- 0
|
本帖最后由 bxfqing 于 2014-09-08 21:36 编辑
更新,Cookie构造方法有问题:
我把/usr/lib/python2.7/cookielib.py的源代码加了debug信息
- def add_cookie_header(self, request):
- """Add correct Cookie: header to request (urllib2.Request object).
- The Cookie2 header is also added unless policy.hide_cookie2 is true.
- """
- _debug("add_cookie_header")
- self._cookies_lock.acquire()
- try:
- self._policy._now = self._now = int(time.time())
- cookies = self._cookies_for_request(request)
- print '---',cookies
- attrs = self._cookie_attrs(cookies)
- print '+++',attrs
- if attrs:
- if not request.has_header("Cookie"):
- request.add_unredirected_header(
- "Cookie", "; ".join(attrs))
- print '<<< ',"Cookie","; ".join(attrs)
- # if necessary, advertise that we know RFC 2965
- if (self._policy.rfc2965 and not self._policy.hide_cookie2 and
- not request.has_header("Cookie2")):
- for cookie in cookies:
- if cookie.version != 1:
- request.add_unredirected_header("Cookie2", '$Version="1"')
- break
- finally:
- self._cookies_lock.release()
- self.clear_expired_cookies()
- print '>>>',self._cookies_for_request(request)
复制代码 可以POST是带自定义的cookie信息了;
- <<< before Request
- <_LWPCookieJar.LWPCookieJar[<Cookie NSC_qbttqpsu=ffffffffc3a0da7e45525d5f4f58455e445a4a423660 for passport.feng.com/>, <Cookie PHPSESSID=mf2kvv1pbdc945sespksa8q9f7 for passport.feng.com/>, <Cookie username=1111 for passport.feng.com/>]>
- +++ None
- <<< after Request,before urlopen
- <_LWPCookieJar.LWPCookieJar[<Cookie NSC_qbttqpsu=ffffffffc3a0da7e45525d5f4f58455e445a4a423660 for passport.feng.com/>, <Cookie PHPSESSID=mf2kvv1pbdc945sespksa8q9f7 for passport.feng.com/>, <Cookie username=1111 for passport.feng.com/>]>
- --- [Cookie(version=0, name='username', value='1111', port=None, port_specified=False, domain='passport.feng.com', domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=None, discard=True, comment=None, comment_url=None, rest={}, rfc2109=False), Cookie(version=0, name='NSC_qbttqpsu', value='ffffffffc3a0da7e45525d5f4f58455e445a4a423660', port=None, port_specified=False, domain='passport.feng.com', domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=1409131162, discard=False, comment=None, comment_url=None, rest={'httponly': None}, rfc2109=False), Cookie(version=0, name='PHPSESSID', value='mf2kvv1pbdc945sespksa8q9f7', port=None, port_specified=False, domain='passport.feng.com', domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=None, discard=True, comment=None, comment_url=None, rest={}, rfc2109=False)]
- 1<<< Cookie username=1111; NSC_qbttqpsu=ffffffffc3a0da7e45525d5f4f58455e445a4a423660; PHPSESSID=mf2kvv1pbdc945sespksa8q9f7
- >>> [Cookie(version=0, name='username', value='1111', port=None, port_specified=False, domain='passport.feng.com', domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=None, discard=True, comment=None, comment_url=None, rest={}, rfc2109=False), Cookie(version=0, name='NSC_qbttqpsu', value='ffffffffc3a0da7e45525d5f4f58455e445a4a423660', port=None, port_specified=False, domain='passport.feng.com', domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=1409131162, discard=False, comment=None, comment_url=None, rest={'httponly': None}, rfc2109=False), Cookie(version=0, name='PHPSESSID', value='mf2kvv1pbdc945sespksa8q9f7', port=None, port_specified=False, domain='passport.feng.com', domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=None, discard=True, comment=None, comment_url=None, rest={}, rfc2109=False)]
- send: 'POST /index.php?r=user/LoginProcess HTTP/1.1\r\nAccept-Encoding: identity\r\nContent-Length: 75\r\nAccept-Language: en-US,en;q=0.5\r\nConnection: close\r\nAccept: application/json, text/javascript, */*; q=0.01\r\nUser-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0\r\nHost: passport.feng.com\r\nCookie: username=1111; NSC_qbttqpsu=ffffffffc3a0da7e45525d5f4f58455e445a4a423660; PHPSESSID=mf2kvv1pbdc945sespksa8q9f7\r\nX-Requested-With: XMLHttpRequest\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\nusername%3D=1111&password%3D=xxxxxxxx&wekey_token%3D=&check_code%3D='
- reply: 'HTTP/1.1 200 OK\r\n'
- header: Date: Wed, 27 Aug 2014 09:09:22 GMT
- header: Server: nginx/1.2
- header: Content-Type: text/html;charset=utf-8
- header: Transfer-Encoding: chunked
- header: X-Powered-By: PHP/5.5.1
- header: Expires: Thu, 19 Nov 1981 08:52:00 GMT
- header: Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
- header: Pragma: no-cache
- header: Set-Cookie: NSC_qbttqpsu=ffffffffc3a0da7e45525d5f4f58455e445a4a423660;expires=Wed, 27-Aug-2014 09:19:22 GMT;path=/;httponly
- header: X-Via: 1.1 lsh57:2 (Cdn Cache Server V2.0)
- header: Connection: close
- <<< after urlopen
- <_LWPCookieJar.LWPCookieJar[<Cookie NSC_qbttqpsu=ffffffffc3a0da7e45525d5f4f58455e445a4a423660 for passport.feng.com/>, <Cookie PHPSESSID=mf2kvv1pbdc945sespksa8q9f7 for passport.feng.com/>, <Cookie username=1111 for passport.feng.com/>]>
- {"status":"need_checkcode","info":{"item":"password","info":"\u8d26\u53f7\u4fe1\u606f\u4e0d\u80fd\u4e3a\u7a7a"}}
复制代码 |
|