open url from pythonanywhere

python, pythonanywhere, urllib2

Solution

Free accounts on PythonAnywhere are restricted to a whitelist of sites, http/https only, and access goes via a proxy. There's more info here:

PythonAnywhere wiki: "why do I get a 403 forbidden error when opening a url?"

Problem

This code works well on my local machine, but when I upload and run it on pythonanywhere.com it gives me this error. My Code: ``` url = "http://www.codeforces.com/api/contest.list?gym=false" hdr = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3', 'Accept-Encoding': 'none', 'Accept-Language': 'en-US,en;q=0.8', 'Connection': 'keep-alive'} req = urllib2.Request(url, headers=hdr) opener = urllib2.build_opener() openedReq = opener.open(req, timeout=300) ``` The error: ``` Traceback (most recent call last): File "/home/GehadAbdallah/main.py", line 135, in openApi openedReq = opener.open(req, timeout=300) File "/usr/lib/python2.7/urllib2.py", line 410, in open response = meth(req, response) File "/usr/lib/python2.7/urllib2.py", line 523, in http_response 'http', request, response, code, msg, hdrs) File "/usr/lib/python2.7/urllib2.py", line 448, in error return self._call_chain(*args) File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain result = func(*args) File "/usr/lib/python2.7/urllib2.py", line 531, in http_error_default raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) urllib2.HTTPError: HTTP Error 403: Forbidden ``` P.S. i'm working on python 2.7

Original source