Search code examples
pythonapiurllib

Request not returning same data as browser


Trying to get some values from Duolingo using Python, but urllib is giving me something different than when I navigate to the url via my browser.

Navigating to a url (https://www.duolingo.com/2017-06-30/users/215344344?fields=xpGoalMetToday) via browser gives: {"xpGoalMetToday": false}.

However, trying via the below script:

import urllib.request

url = 'http://www.duolingo.com/2017-06-30/users/215344344?fields=xpGoalMetToday'
user_agent = '[insert my local user agent copied from browser attempt]'

# header variable
headers = { 'User-Agent' : user_agent, "Cache-Control": "no-cache, max-age=0" }

# creating request
req = urllib.request.Request(url, None, headers)

print(urllib.request.urlopen(req).read())

returns just a blank {}.

As you can tell from the above, I've tried a couple things: adding a user agent, cache control. I've even tried using the response module and adding authentication (didn't work).

Any ideas? Am I missing something?


Solution

  • Actually when I open the link in the browser it show me {}

    Maybe you have some kind of cookie set in your browser?