使用urllib2发布数据,跟随重定向并保持Cookies

4 投票
1 回答
624 浏览
提问于 2025-04-16 01:55

我在用Pythonurllib2库向一个网站发送登录信息。

登录成功后,网站会把我的请求转到另一个页面。有人能给我一个简单的代码示例,教我怎么用urllib2在Python中做到这一点吗?我想我还需要一些cookies,这样在被转到另一个页面时才能保持登录状态,对吧?

非常感谢!

1 个回答

6

首先,你需要下载 mechanize:http://wwwsearch.sourceforge.net/mechanize/
你可以用 urllib2 来做这些事情,但那样你得写很多重复的代码,而且可能会出错。

接下来:

import mechanize

br = mechanize.Browser()
br.open('http://somesite.com/account/signin/')

br.select_form('loginForm')    
br['username'] = 'jekyll'
br['password'] = 'bananas'
br.submit()
# At this point, you're logged in, redirected, and the 
#  br object has the cookies and all that.

br.geturl() # e.g. http://somesite.com/loggedin/

然后你可以使用浏览器对象 br,这样你就可以做你需要做的事情,比如点击链接等等。可以去 mechanize 网站看看示例。

撰写回答