2017-10-19 23 views
0

Je suis assez nouveau à Scrapy/ProxyMesh. Ma demande au serveur de Proxymesh semble fonctionner comme je vois ma consommation de bande passante sur le site Web de ProxyMesh, et la méta.proxy est correcte dans mes logs. Toutefois, lorsque je consigne les en-têtes de réponse dans Scrapy, je ne reçois pas le X-Proxymesh-IP que je suis censé recevoir. Voici mon code. Qu'est-ce que je fais mal?Ne recevant pas d'en-têtes Scrapy ProxyMesh

Ceci est mon middleware

class Proxymesh(object): 

def __init__(self): 

    logging.debug('Initialized Proxymesh middleware') 

    self.proxy_ip = 'http://host:port' 

def process_request(self, request, spider): 

    logging.debug('Processing request through proxy IP: ' + self.proxy_ip) 

    request.meta['proxy'] = self.proxy_ip 

Ce sont mes paramètres dans mon araignée

custom_settings = { 
    "DOWNLOADER_MIDDLEWARES": { 
     "projectName.middlewares.proxymesh.Proxymesh" : 1, 
    } 

Voici ce que les en-têtes de réponse ressemblent

['Set-Cookie']:['__cfduid=d88d4e4cb7... HttpOnly'] 
['Vary']:['User-Agent,Accept-Encoding'] 
['Server']:['cloudflare-nginx'] 
['Date']:['Thu, 19 Oct 2017 10...38:10 GMT'] 
['Cf-Ray']:['3b031b30cbef1565-CDG'] 
['Content-Type']:['text/html; charset=UTF-8'] 

Merci pour votre aide

Répondre

0

Peut-être que vous devez le faire aussi?

DOWNLOADER_MIDDLEWARES = { 
    'scrapy.contrib.downloadermiddleware.httpproxy.HttpProxyMiddleware': 1, 
} 

Et aussi dans votre fonction de rappel, êtes-vous sûr que vous imprimez response.headers

+0

Hey @Umair ajouter le middleware httpProxy ne change rien. En outre, les en-têtes de réponse sont imprimés dans le rappel de mon araignée. Y aurait-il un autre moyen d'accéder à ces en-têtes X-Proxymesh-IP? – xavierds

+0

J'ai utilisé proxymesh il y a quelques mois ... ça devrait marcher ... pouvez-vous partager votre code complet? – Umair

+0

Veuillez également vous assurer que votre proxy fonctionne ou non. Grattez toute adresse IP de site Web pour vérifier quelle adresse IP est renvoyée – Umair