python request.get дает 403 запрещенных, тогда как в браузере идеально подходит URL. Почему? - PullRequest
0 голосов
/ 08 января 2020

У меня есть код для получения json определенной веб-страницы, требующей аутентификации, например

dummy_url = "some url with some parameter like offset"
obj = requests.get(dummy_url.format(offset=0),auth=("#MyUserName","#MyPassword"))
required_json = obj.json()

Если я введу URL-адрес в каком-либо браузере, например chrome / firefox, я получу требуемой страницы, но если я использую приведенный выше код, то получаю запрещенную ошибку 403.

в надежде найти способ ее решить ...:}

Заранее спасибо:}

Ответы [ 2 ]

0 голосов
/ 08 января 2020

Так же, как короткий совет, для отладки сетевых протоколов используйте wireshark и посмотрите информацию о ваших сгенерированных запросах.

0 голосов
/ 08 января 2020

Может быть, это может помочь:

   import base64, urllib2, json
   username = 'your_username'
   password = 'your_password'
   request = urllib2.Request(dummy_url )
   base64string = base64.b64encode('%s:%s' % (username, password))
   request.add_header("Authorization", "Basic %s" % base64string)

   response = urllib2.urlopen(request)
   record = json.loads(response.read())
   print("My JSON:", record)

Ссылка

https://docs.python.org/2/library/urllib2.html

...