小白用urllib写了个自动登陆的脚本,登陆页面成功但而后访问其他页面依旧返回未登陆

2013-08-04 09:13:05 +08:00
 tedd
# -*- coding: utf-8 -*-
import urllib, urllib2

loginUrl = #登陆页面地址
tUrl = #私密页面地址

postdata = urllib.urlencode({
'username':'username',
'password':'password',
'loginsubmit':'登陆',
})

req = urllib2.Request(loginUrl, data=postdata)
content = urllib2.urlopen(req).read()
print content #成功登陆
content2 = urllib2.urlopen(tUrl).read()
print content2 #提示未登陆
3164 次点击
所在节点    Python
6 条回复
timonwong
2013-08-04 09:17:14 +08:00
没有Cookie
你可以试试用cookielib.CookieJar保存相关Cookie:
cookie = cookielib.CookieJar()
# With Cookie
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))

然后用这个opener操作
clino
2013-08-04 09:19:56 +08:00
没用过urllib2,我基本上用的是requests
不过目测是不是应该给 urlopen 加上 data 参数?
urllib2.urlopen(url[, data][, timeout])
而这个data参数要给登陆以后返回的session cookie内容
alexrezit
2013-08-04 09:26:44 +08:00
@timonwong
正解.
tedd
2013-08-04 09:32:20 +08:00
@timonwong 原来如此,opener操作是关键,感谢tim
wzzyj8
2013-08-04 09:38:02 +08:00
可以试试看这个:http://jeanphix.me/Ghost.py/
如果你需要模拟一些浏览器操作,ghost.py还是挺好用的
ushuz
2013-08-04 11:52:14 +08:00
requests, for human.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/77919

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX