2011-11-20 6 views
2

Je peux définir un proxy http en utilisant request.meta ['proxy'], mais comment authentifier le proxy?Authentifier le proxy HTTP Scrapy

Cela ne fonctionne pas pour indiquer l'utilisateur et de transmettre:

request.meta['proxy'] = 'http://user:[email protected]:2222' 

De regarder autour, je dois envoyer request.headers [ « Proxy-Authorization »], mais quel format dois-je envoyer en?

Répondre

6

nom d'utilisateur et mot de passe sont codés base64 sous la forme "nom d'utilisateur: Mot de passe"

import base64 

# Set the location of the proxy 
proxy_string = choice(self._get_proxies_from_file('proxies.txt')) # user:[email protected]:port 
proxy_items = proxy_string.split('@') 
request.meta['proxy'] = "http://%s" % proxy_items[1] 

# setup basic authentication for the proxy 
user_pass=base64.encodestring(proxy_items[0]) 
request.headers['Proxy-Authorization'] = 'Basic ' + user_pass