Code:
import http.cookiejar, urllib.request, urllib.parse
class NeoAccount:
"""A simple Neopets connection class"""
def __init__(self, un, pw):
self.username = un
self.password = pw
cookie_handler = urllib.request.HTTPCookieProcessor()
self._opener = urllib.request.build_opener(cookie_handler)
self._opener.addheaders = [('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0')]
self.referer = None
def login(self):
self.clearCookies()
data = {"destination" : "/index.phtml",
"username" : self.username,
"password" : self.password}
html = self.post("http://www.neopets.com/login.phtml", data)
return "Welcome, " in html
def get(self, url, referer = ""):
if referer is not None:
self._opener.addheaders = [('Referer', referer)]
return str(self._opener.open(url).read())
def post(self, url, parameters, referer = ""):
data = urllib.parse.urlencode(parameters)
data = data.encode('UTF-8')
if referer is not None:
self._opener.addheaders = [('Referer', referer)]
return str(self._opener.open(url, data).read())
def clearCookies(self):
self.cj = http.cookiejar.CookieJar()
Example usage:
Code:
username = input("Neopets username: ")
password = input("Neopets password: ")
acc = NeoAccount(username, password)
if acc.login():
print("Logged into " + username)
html = acc.get("http://www.neopets.com/inventory.phtml")
match = re.search("Total Items: <b>([0-9]+)</b>", html)
if match:
itemCount = match.group(1)
else:
itemCount = "0"
print(username + " has " + itemCount + " items!")
else:
print("Failed to login to " + username)