首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用python和机械化登录网站

如何使用python和机械化登录网站
EN

Stack Overflow用户
提问于 2013-05-17 05:56:12
回答 1查看 33.8K关注 0票数 21

我正在尝试登录http://www.magickartenmarkt.de网站,在会员区(https://www.magickartenmarkt.de/?mainPage=showWants)做一些分析。我看到了其他的例子,但我不明白为什么我的方法不起作用。我为第一种方法确定了正确的表单,但尚不清楚它是否有效。在第二种方法中,重新生成的网页显示我没有访问会员区的权限。

如果有任何帮助,我都会很高兴。

代码语言:javascript
复制
import urllib2
import cookielib
import urllib
import requests
import mechanize
from mechanize._opener import urlopen
from mechanize._form import ParseResponse

USERNAME = 'Test'
PASSWORD = 'bla123'
URL      = "http://www.magickartenmarkt.de"

# first approach
request = mechanize.Request(URL)
response = mechanize.urlopen(request)
forms = mechanize.ParseResponse(response, backwards_compat=False)
# I don't want to close?!
#response.close()

# Username and Password are stored in this form
form = forms[1]

form["username"] = USERNAME
form["userPassword"] = PASSWORD

#proof entering data has worked
user = form["username"]  # a string, NOT a Control instance
print user
pw = form["userPassword"]  # a string, NOT a Control instance
print pw
#is this the page where I will redirected after login?
print urlopen(form.click()).read () 

#second approach
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
login_data = urllib.urlencode({'username' : USERNAME, 'userPassword': PASSWORD})

#login
response_web = opener.open(URL, login_data)

#did it work? for me not....
resp = opener.open('https://www.magickartenmarkt.de/?mainPage=showWants')
print resp.read()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-17 06:02:55

为什么不使用浏览器实例来方便导航呢?机械化还具有选择特定表单的能力(例如,nr =0将选择页面上的第一个表单)

代码语言:javascript
复制
browser = mechanize.Browser()
browser.open(YOUR URL)
browser.select_form(nr = 0)
browser.form['username'] = USERNAME
browser.form['password'] = PASSWORD
browser.submit()
票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16598145

复制
相关文章

相似问题

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