logging into https site using python mechanize library

核能气质少年 提交于 2019-12-11 02:45:53

问题


I have the following code:

import requests
import sys
import urllib2
import re
import mechanize
import cookielib
#import json
#import imp
#print(imp.find_module("requests"))
#print(requests.__file__)
EMAIL = "******"
PASSWORD = "*******"

URL = 'https://www.imleagues.com/Login.aspx'
address = "http://www.imleagues.com/School/Team/Home.aspx?Team=27d6c31187314397b00293fb0cfbc79a"
br = mechanize.Browser()
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)

br.add_password(URL, EMAIL, PASSWORD)
br.open(URL)

#br.open(URL)
#br.select_form(name="aspnetForm")
#br.form["ctl00$ContentPlaceHolder1$inUserName"] = EMAIL
#br.form["ctl00$ContentPlaceHolder1$inPassword"] = PASSWORD
#response = br.submit()
#br= mechanize.Browser()
site = br.open(address)

    # Start a session so we can have persistant cookies
#session = requests.Session()

    # This is the form data that the page sends when logging in
#login_data = {
 #   'ctl00$ContentPlaceHolder1$inUserName': EMAIL,
 #   'ctl00$ContentPlaceHolder1$inPassword': PASSWORD,
  #  'aspnetFrom': 'http://www.imleagues.com/Members/Home.aspx',
#}
#URL_post = 'http://www.imleagues.com/Members/Home.aspx'
    # Authenticate
#r = session.post(URL, data=login_data)

    # Try accessing a page that requires you to be logged in
#r = session.get('http://www.imleagues.com/School/Team/Home.aspx?Team=27d6c31187314397b00293fb0cfbc79a')



website = site.read()


f = open('crypt.txt', 'wb')
f.write(website)

#print(website_html)

I am trying to log into this site to monitor game times and make sure they aren't changed on me (again). I've tried various ways to do this, most commented out above, but all of them redirect me back to the login page. Any ideas? Thanks.


回答1:


As I see in given website login button is not in submit tag. Login is javascript function

<a ... href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$btnLogin','')" </a>

and mechanize cannot handle javascript. I faced very similiar problem and came up with solution to use Spynner. It is headless web browser. So you can acomplish same tasks as you use mechanize and it has javascript support.



来源:https://stackoverflow.com/questions/15625008/logging-into-https-site-using-python-mechanize-library

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!