Пытаюсь авторизироваться на сайте .
После авторизации java выводит alert:.
А вот mechanize выводит “HTTP Error 500: Internal Server Error”, grab выводит: “Bad Data.”
Код с использованием mechanize:
[code python]# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup
from urllib2 import urlopen
import cookielib, shutil, os
from mechanize import Browser
br = Browser()
username = 'RULADEMO535853'
userpass = 'JbVzQ9Dg'
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
br.set_handle_robots(False)
#br.find_control("foo").readonly = False # allow changing .value of control foo
#br.set_all_readonly(False) # allow changing the .value of all controls
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
br.open('https://www.autodata-online.net/onlineea/login/AutodataLogon.aspx')
br.select_form(nr=0)
br["ctl00$ContentPlaceHolder1$UsernameTextBox"] = username
br["ctl00$ContentPlaceHolder1$PasswordTextBox"] = userpass
response = br.submit(name='ctl00$ContentPlaceHolder1$SubmitBtn').read()
result_page = br.submit()
print "Успешно вошли как", username
print result_page
[/code]
Код c использованием grab, вместе с выводом (писал в отладчике):
[code python]>>> g.set_input('ctl00$ContentPlaceHolder1$UsernameTextBox', 'RULADEMO535853')
>>> g.set_input('ctl00$ContentPlaceHolder1$PasswordTextBox', 'JbVzQ9Dg')
>>> g.submit()
<grab.response.Response object at 0x151ebb0>
>>> print g.xpath_text('//title')
ERROR:root:Call to deprecated function xpath_text. Use grab.doc.select().text() instead.
ERROR:root:Call to deprecated function xpath_one. Use grab.doc.select().one() instead.
ERROR:root:Call to deprecated function xpath_list. Use grab.doc.select() instead.
Bad Data.
[/code]
После некоторых исследований, оказалось что не из-за аллерта. Вывел страничку, на которую меня кидает после сабмита:
Как побороть эту проблему?