python 3 Login form on webpage with urllib and cookiejar

user2804599 picture user2804599 · Sep 23, 2013 · Viewed 7.3k times · Source

I've been trying to make a python script login to my reddit account but it doesnt seem to work, could anybody tell me whats wrong with my code? It runs fine it just doesnt login.¨

cj = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
urllib.request.install_opener(opener)
authentication_url = 'https://ssl.reddit.com/post/login'
payload = {
    'op': 'login',
    'user_name': 'username',
    'user_pass': 'password'
}
data = urllib.parse.urlencode(payload)
binary_data = data.encode('UTF-8')
req = urllib.request.Request(authentication_url, binary_data)
resp = urllib.request.urlopen(req)
contents = resp.read()

Answer

Blender picture Blender · Sep 23, 2013

The name attribute of the field is sent, not the id:

payload = {
    'op': 'login',
    'user': 'username',
    'passwd': 'password'
}