python - Login function in separate file using RoboBrowser -


i writing program/script retrieve key information hoovers.com. have 2 files. 1 hoovers5.py (which contains, among other things, classes) , other main.py.

hoovers5.py:

def testlogin():     import hlogin # file contains hoovers login credentials     robobrowser import robobrowser      browser = robobrowser()     login_url = "https://subscriber.hoovers.com/h/login/login.html"     browser.open(login_url)     form = browser.get_form(id='loginform')  # gets login form id     form['j_username'].value = hlogin._hname  # fills in hoovers login name     form['j_password'].value = hlogin._hpass  # fills in hoovers password     browser.submit_form(form)  # submits login 

main.py:

import hoovers hv5 robobrowser import robobrowser  hv5.testlogin()  browser = robobrowser() browser.open('http://subscriber.hoovers.com/h/company360/overview.htmlcompanyid=26082233') print browser.parsed 

i have tested code numerous times , login works if run login without placing function in main file. works in sense can execute following , expected parsed value:

browser.open('http://subscriber.hoovers.com/h/company360/overview.htmlcompanyid=621076715') print browser.parsed 

however, create function login, login doesn't seem to...stick? losing session in hoovers5.py file because i'm instantiating new browser in main.py? how can pass "session" main script? i've tried creating object called browser2 = robobrowser() , opening url through that, doesn't work.

do require cookies (and if, how go this?) or need return in function?

your function creates new robobrowser(), separate state. if opened new browser (not new window or tab) , tried use login session there.

share browser object between function , rest of code:

def testlogin(browser):     import hlogin # file contains hoovers login credentials      login_url = "https://subscriber.hoovers.com/h/login/login.html"     browser.open(login_url)     form = browser.get_form(id='loginform')  # gets login form id     form['j_username'].value = hlogin._hname  # fills in hoovers login name     form['j_password'].value = hlogin._hpass  # fills in hoovers password     browser.submit_form(form)  # submits login 

and use as:

import hoovers hv5 robobrowser import robobrowser  browser = robobrowser()  hv5.testlogin(browser)  browser.open('http://subscriber.hoovers.com/h/company360/overview.htmlcompanyid=26082233') print browser.parsed 

now have one browser object, login session stored in object , can continue use session other urls.


Comments

Popular posts from this blog

javascript - Chart.js (Radar Chart) different scaleLineColor for each scaleLine -

apache - Error with PHP mail(): Multiple or malformed newlines found in additional_header -

java - Android – MapFragment overlay button shadow, just like MyLocation button -