使用python登录站点并在浏览器中打开登录站点

时间:2014-01-28 18:44:31

标签: python python-2.7 login

我正在学习如何使用python通过此site登录网站,并将其应用到我的网站。这样我就可以在没有任何登录要求的情况下打开网页。它没有显示任何错误,但我无法实现我想要的。可能我的方式不是这样做的,那么请回答如何实现它。我想要的是登录我提供的凭据,然后打开浏览器。但是当页面加载时,它仍然没有登录。希望我的意思很清楚。如果我的问题没有清除,请问我。将不胜感激。谢谢!

我修改了一点以实现目标:

import urllib, urllib2, cookielib
import webbrowser
#cookie storage
cj = cookielib.CookieJar()
#create an opener
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
#Add useragent, sites don't like to interact programs.
opener.addheaders.append(('User-agent', 'Mozilla/4.0'))
opener.addheaders.append( ('Referer', 'http://somesite.com/adminpanel/index.php') )
#encode the login data. This will vary from site to site.
#View the sites source code
#Example###############################################
#<form id='loginform' method='post' action='index.php'>
#<div style="text-align: center;">
#Username<br />
#<input type='text' name='admin_userid' class='textbox' style='width:100px' /><br />
#Password<br />
#<input type='password' name='admin_password' class='textbox' style='width:100px' /><br />
#<input type='checkbox' name='remember_me' value='y' />Remember Me<br /><br />
#<input type='submit' name='login' value='Login' class='button' /><br />
login_data = urllib.urlencode({'admin_userid' : 'admin',
                               'admin_password' : 'test',
                               'login' : 'Login'
                               })
resp = opener.open('http://somesite.com/adminpanel/index.php', login_data)
#you are now logged in and can access "members only" content.
#when your all done be sure to close it

webbrowser.open('http://somesite.com/adminpanel/index.php')

resp.close()

2 个答案:

答案 0 :(得分:0)

通过这个你打开网址,但cookie在哪里?我的意思是你错过了cookie,这就是为什么你总是在浏览器上看到登录页面的原因。

webbrowser.open('http://somesite.com/adminpanel/index.php')

您可以从resp中读取html并保存到html中,然后根据需要在浏览器中加载html文件。

for html in resp:
    print html

答案 1 :(得分:0)

在这里查看您所做的是使用您的脚本建立与网站的连接,但不是与您的浏览器建立连接,我建议您前往http://docs.seleniumhq.org/

相关问题