2017-04-26 3 views
1

스플래쉬와 함께 프록시 (proxymesh)를 사용하려고합니다. 나는 (관련) 코드를스플래쉬 스플래시와 프록시 사용

PROXY = """splash:on_request(function(request) 
    request:set_proxy{ 
     host = http://us-ny.proxymesh.com, 
     port = 31280, 
     username = username, 
     password = secretpass, 
    } 
    return splash:html() 
end)""" 

와의 start_requests

def start_requests(self): 
    for url in self.start_urls: 
     print url 
     yield SplashRequest(url, self.parse, 
      endpoint='execute', 
      args={'wait': 5, 
        'lua_source': PROXY, 
        'js_source': 'document.body'}, 

다음 한 그러나 작동하지 않습니다. self.parse는 전혀 호출되지 않습니다. 끝점을 'render.html'로 변경하면 self.parse 메서드가 실행되지만 헤더 (response.headers)를 검사하면 물마루 프록시가 실행되지 않는다는 것을 알 수 있습니다. 나는 응답 URL을 구문 분석 할 때 http://checkip.dyndns.org/을 시작 URL로 설정하고 보았을 때 내 이전 IP 주소를 확인했습니다.

내가 뭘 잘못하고 있니?

답변

6

SplashRequest 객체에 'proxy'인수를 추가해야합니다.

def start_requests(self): 
    for url in self.start_urls: 
     print url 
     yield SplashRequest(url, self.parse, 
      endpoint='execute', 
      args={'wait': 5, 
        'lua_source': PROXY, 
        'js_source': 'document.body', 
        'proxy': 'http://proxy_ip:proxy_port'} 
+0

감사 인사 – morea030