Point addictif lors du passage par proxy http avec authentification de base en python

Point addictif lors du passage par proxy http avec authentification de base en python

Série 2.7.x. Lorsque l'authentification de base est appliquée lors du passage par le proxy http avec urllib2.

Lorsque le serveur cible est authentifié

client => proxy => target
↑ Ici

Ce n'est pas grave si vous imitez la référence ou celle qui sort lorsque vous recherchez normalement sur Google.

#!/usr/bin/env python

import urllib2

proxy = urllib2.ProxyHandler({
  'http': 'http://username:password@proxy:8080'
})
auth = urllib2.HTTPBasicAuthHandler()
opener = urllib2.build_opener(proxy, auth)
urllib2.install_opener(opener)

conn = urllib2.urlopen('http://target/')
print conn.read()

Cela ajoutera l'en-tête Proxy-Authorization.

Lorsque l'authentification de base est appliquée au serveur proxy

client => proxy => target
↑ Ici

Dans ce cas, vous devez ajouter l'en-tête ʻAuthorization au lieu de l'en-tête Proxy-Authorization`. Cependant, peu importe combien j'ai cherché et essayé, la méthode utilisant Handler n'est pas sortie, donc Il n'y a aucune aide pour cela, alors j'ai réussi à le résoudre en calculant manuellement l'en-tête et en l'ajoutant.

#!/usr/bin/env python

import urllib2
import base64

proxy = urllib2.ProxyHandler({
  'http':'http://proxy:8080'
})
opener = urllib2.build_opener(proxy)
base64string = base64.encodestring('%s:%s' % ("username", "password"))
opener.addheaders = [ ("Authorization", "Basic %s" % base64string) ]

conn = opener.open('http://target/')
print conn.read()

Je me demande s'il existe une solution appropriée en utilisant Handler.

Au fait

pip requests Lorsqu'ils sont utilisés C'était le comportement de "Proxy-Authorization".

#!/usr/bin/env python

import requests

proxies = {
    "http": "http://username:password@proxy:8080",
}

ret = requests.get("http://target/", proxies=proxies)
print ret

Recommended Posts

Point addictif lors du passage par proxy http avec authentification de base en python
Envoyer HTTP avec l'en-tête d'authentification de base en Python
Le point addictif du "raisonnement de Bayes expérimenté en Python"
Authentification BASIC avec bouteille Python
Authentification de base avec mot de passe crypté (.htpasswd) avec bouteille en python
Scraping avec Selenium en Python (Basic)
Obtenez une authentification de base avec CloudFront Lambda @ Edge avec Python 3.8
Précautions lors du traitement des structures de contrôle dans Python 2.6
Via un proxy d'authentification pour la communication à l'aide de python urllib3
Sélection de la boîte aux lettres lors de la récupération de Gmail avec imaplib de python
Sortie japonaise lors de l'utilisation de python dans Visual Studio
Tri de base en Python
Requête HTTP en Python
Communication HTTP avec Python
Précautions lors de l'utilisation de Python avec AtCoder
Choses à garder à l'esprit lors de l'utilisation de cgi avec python.
Afficher les fractions en Python
Grattage au sélénium en Python
Refactoring appris avec Python (Basic)
Exploitez LibreOffice avec Python
Débogage avec pdb en Python
Utiliser le cache HTTP en Python
[Python] Utilisation d'OpenCV avec Python (basique)
Gérer les sons en Python
Grattage avec Tor en Python
Tweet avec image en Python
Attention lorsque os.mkdir en Python
Combiné avec ordinal en Python
Erreur lors de la lecture avec python
Serveur HTTP facile avec Python
[Python] [SQLite3] Exploiter SQLite avec Python (basique)
Comment ne pas échapper au japonais en traitant avec JSON en Python
Émission de jetons d'authentification Firebase en Python et validation de jetons avec Fast API