In [5]:
import urllib, urllib2, cookielib
from HTMLParser import HTMLParser

url='https://enlighten.enphaseenergy.com/systems/15610/devices/395315/graph_widget.json?timeframe=recent'
username='rsignell@usgs.gov'
password='4U10PXWU55'
login_url='https://enlighten.enphaseenergy.com/'

In [3]:
result = urllib2.urlopen(login_url)
html = result.read()

In [6]:
# create a subclass and override the handler methods
class MyHTMLParser(HTMLParser):
    def handle_starttag(self, tag, attrs):
        print "Encountered a start tag:", tag
    def handle_endtag(self, tag):
        print "Encountered an end tag :", tag
    def handle_data(self, data):
        print "Encountered some data  :", data

In [ ]:
tree = html5lib.parse(html.content, treebuilder='lxml', namespaceHTMLElements=False)

In [7]:
# instantiate the parser and fed it some HTML
parser = MyHTMLParser()
parser.feed(html)


Encountered some data  : 

Encountered a start tag: html
Encountered some data  : 
  
Encountered a start tag: head
Encountered some data  : 
    
Encountered a start tag: meta
Encountered some data  : 
    
Encountered a start tag: meta
Encountered some data  : 
    
Encountered a start tag: meta
Encountered an end tag : meta
Encountered some data  : 

Encountered a start tag: meta
Encountered an end tag : meta
Encountered some data  : 
    
Encountered a start tag: title
Encountered some data  : Enphase Energy - Enlighten | Sign in to Enlighten
Encountered an end tag : title
Encountered some data  : 
    
Encountered a start tag: meta
Encountered an end tag : meta
Encountered some data  : 
    
Encountered a start tag: meta
Encountered some data  : 
    
Encountered a start tag: link
Encountered an end tag : link
Encountered some data  : 
    
Encountered a start tag: link
Encountered an end tag : link
Encountered some data  : 
    
Encountered a start tag: link
Encountered an end tag : link
Encountered some data  : 
    
Encountered a start tag: meta
Encountered some data  : 
    
Encountered a start tag: meta
Encountered an end tag : meta
Encountered some data  : 
    
Encountered some data  : 

Encountered a start tag: link
Encountered an end tag : link
Encountered some data  : 

Encountered some data  : 

Encountered some data  : 
    
Encountered some data  : 

Encountered a start tag: link
Encountered an end tag : link
Encountered some data  : 

Encountered some data  : 

Encountered some data  : 
    
Encountered some data  : 

Encountered a start tag: link
Encountered an end tag : link
Encountered some data  : 

Encountered some data  : 

Encountered some data  : 
    
Encountered a start tag: script
Encountered an end tag : script
Encountered some data  : 
    
Encountered some data  : 
    
Encountered some data  : 
    
Encountered some data  : 
    
  
Encountered a start tag: script
Encountered some data  : var NREUMQ=NREUMQ||[];NREUMQ.push(["mark","firstbyte",new Date().getTime()]);
Encountered an end tag : script
Encountered an end tag : head
Encountered some data  : 
  
Encountered a start tag: body
Encountered some data  : 
    
        


Encountered a start tag: div
Encountered some data  : 
  
Encountered a start tag: div
Encountered some data  : 
        
Encountered a start tag: a
Encountered an end tag : a
Encountered some data  : 
    
    
Encountered a start tag: div
Encountered some data  : 
      
Encountered a start tag: div
Encountered some data  : 
        
Encountered a start tag: div
Encountered a start tag: span
Encountered some data  : Language
Encountered an end tag : span
Encountered an end tag : div
Encountered some data  : 

        
Encountered a start tag: div
Encountered some data  : 

          
Encountered a start tag: ul
Encountered some data  : 
      
Encountered a start tag: li
Encountered a start tag: a
Encountered some data  : English
Encountered an end tag : a
Encountered an end tag : li
Encountered some data  : 
      
Encountered a start tag: li
Encountered a start tag: a
Encountered some data  : Français
Encountered an end tag : a
Encountered an end tag : li
Encountered some data  : 
      
Encountered a start tag: li
Encountered a start tag: a
Encountered some data  : Italiano
Encountered an end tag : a
Encountered an end tag : li
Encountered some data  : 

Encountered an end tag : ul
Encountered some data  : 
          
Encountered a start tag: ul
Encountered some data  : 
            
Encountered a start tag: li
Encountered an end tag : li
Encountered an end tag : ul
Encountered some data  : 
        
Encountered an end tag : div
Encountered some data  : 
      
Encountered an end tag : div
Encountered some data  : 
    
Encountered an end tag : div
Encountered some data  : 
  
Encountered an end tag : div
Encountered some data  : 

Encountered an end tag : div
Encountered some data  : 


        
Encountered a start tag: div
Encountered an end tag : div
Encountered some data  : 
        
Encountered a start tag: div
Encountered some data  : 
        
Encountered a start tag: div
Encountered some data  : 
    
Encountered a start tag: div
Encountered some data  : 
      
Encountered a start tag: div
Encountered some data  : Want to see Enphase in action? 
Encountered a start tag: a
Encountered some data  : View public systems
Encountered an end tag : a
Encountered an end tag : div
Encountered some data  : 
    
Encountered an end tag : div
Encountered some data  : 
    
Encountered a start tag: form
Encountered a start tag: div
Encountered a start tag: input
Encountered an end tag : input
Encountered a start tag: input
Encountered an end tag : input
Encountered an end tag : div
Encountered some data  : 
    
Encountered a start tag: div
Encountered some data  : 
    


Encountered some data  : 

Encountered a start tag: label
Encountered some data  : Email:
Encountered an end tag : label
Encountered some data  : 

Encountered a start tag: input
Encountered an end tag : input
Encountered some data  : 

Encountered a start tag: label
Encountered some data  : Password:
Encountered an end tag : label
Encountered a start tag: input
Encountered an end tag : input
Encountered some data  : 

Encountered a start tag: div
Encountered a start tag: span
Encountered an end tag : span
Encountered some data  : Caps Lock is on
Encountered an end tag : div
Encountered some data  : 

Encountered some data  : 


    
Encountered a start tag: p
Encountered a start tag: a
Encountered some data  : Forgot your password?
Encountered an end tag : a
Encountered an end tag : p
Encountered some data  : 
    
Encountered a start tag: label
Encountered a start tag: input
Encountered an end tag : input
Encountered an end tag : label
Encountered some data  : 
    
Encountered a start tag: p
Encountered some data  : Installing your first Enphase system? 
Encountered a start tag: a
Encountered some data  : Sign up for Enlighten
Encountered an end tag : a
Encountered an end tag : p
Encountered some data  : 
    
Encountered an end tag : div
Encountered some data  : 

Encountered an end tag : form
Encountered an end tag : div
Encountered some data  : 

Encountered a start tag: div
Encountered an end tag : div
Encountered some data  : 

Encountered a start tag: p
Encountered some data  : Enlighten is compatible with the following browsers: Chrome 5 or higher, Firefox 11 or higher, Internet Explorer 8 or higher, Safari 5 or higher.
Encountered an end tag : p
Encountered some data  : 

Encountered a start tag: script
Encountered some data  : 
$(document).ready(function() {
    $('#user_email').focus();
    $("#submit").button();
    $("#register").button();
});

Encountered an end tag : script
Encountered some data  : 
        
Encountered an end tag : div
Encountered a start tag: div
Encountered an end tag : div
Encountered some data  : 
        
Encountered a start tag: div
Encountered some data  : 
  
Encountered a start tag: footer
Encountered some data  : 
    
Encountered a start tag: a
Encountered an end tag : a
Encountered some data  : 
    
Encountered a start tag: section
Encountered some data  : 
      
Encountered some data  : 2008-2013 Enphase Energy Inc. All rights reserved. 
Encountered a start tag: a
Encountered some data  : Privacy
Encountered an end tag : a
Encountered some data  :  | 
Encountered a start tag: a
Encountered some data  : Terms
Encountered an end tag : a
Encountered some data  : 
      | 
Encountered a start tag: a
Encountered some data  : Community
Encountered an end tag : a
Encountered some data  : 
    
Encountered an end tag : section
Encountered some data  : 
  
Encountered an end tag : footer
Encountered some data  : 

  
  
Encountered a start tag: script
Encountered some data  : 
  var _gaq = _gaq || [];
  setTimeout(function() {_gaq.push(['_setAccount', 'UA-2434165-3'])},0);
  setTimeout(function() {_gaq.push(['_trackPageview'])},0);
  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

Encountered an end tag : script
Encountered some data  : 
  

Encountered an end tag : div
Encountered some data  : 


    
Encountered a start tag: script
Encountered an end tag : script
Encountered some data  : 
    
Encountered a start tag: script
Encountered some data  : 
     $(function() {
       I18n.defaultLocale = 'en-US';
       I18n.locale = "en-US";
       I18n.fallbacks = true;
     });
    
Encountered an end tag : script
Encountered some data  : 
        
Encountered a start tag: script
Encountered an end tag : script
Encountered some data  : 

  
Encountered a start tag: script
Encountered some data  : if (!NREUMQ.f) { NREUMQ.f=function() {
NREUMQ.push(["load",new Date().getTime()]);
var e=document.createElement("script");
e.type="text/javascript";
e.src=(("http:"===document.location.protocol)?"http:":"https:") + "//" +
  "d1ros97qkrwjf5.cloudfront.net/42/eum/rum.js";
document.body.appendChild(e);
if(NREUMQ.a)NREUMQ.a();
};
NREUMQ.a=window.onload;window.onload=NREUMQ.f;
};
NREUMQ.push(["nrfj","beacon-1.newrelic.com","dec8e4c9b0","267719","JloPTUNYCFRUQU4JWgJcDxZYWQBdSQ==",0,28,new Date().getTime(),"","","","",""]);
Encountered an end tag : script
Encountered an end tag : body
Encountered some data  : 

Encountered an end tag : html
Encountered some data  : 


In [1]:
from bs4 import BeautifulSoup


---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-9144e80cd349> in <module>()
----> 1 from bs4 import BeautifulSoup

ImportError: No module named bs4

In [ ]:
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
login_data = urllib.urlencode({'username' : username, 'j_password' : password})
opener.open('http://www.example.com/login.php', login_data)
resp = opener.open('http://www.example.com/hiddenpage.php')
print resp.read()

In [ ]:
login_url='https://enlighten.enphaseenergy.com/login/login?authenticity_token=w8nsEalob5GQWFHJw6g79AkMFD6o3Ply33jUArSidzU%3D&commit=Sign%20In&user%5Bemail%5D=rsignell%40usgs.gov&user%5Bpassword%5D=4U10PXWU55&utf8=%E2%9C%93'