2017-03-29 20 views
3

로컬 스플래시 인스턴스에서 프록시 서버를 작동 시키려고합니다. 몇 가지 문서를 읽었지만 실행 가능한 예제를 찾지 못했습니다. 이 https://github.com/scrapy-plugins/scrapy-splash/issues/107이 원인 이었다는 것이 내주의에 들었다. 나는 더 이상 그 추적을 받고 있지 않지만 여전히 프록시와 함께 Splash를 사용할 수는 없습니다. 아래에 새로운 오류 메시지가 표시됩니다. 아무도 내가 이것을 해결할 수 있다면 미리 감사드립니다. 내 요청 중 아무 것도 스플래시를 통과하지 못합니다.Scrapy-Splash가있는 프록시 서버

def parse_json(self, response): 
    json_data = response.body 
    load = json.loads(json_data.decode('utf-8')) 
    dump = json.dumps(load,sort_keys=True,indent=2) 
    LUA_SOURCE = """ 
    function main(splash) 
     local host = "proxy.crawlera.com" 
     local port = 8010 
     local user = "APIKEY" 
     local password = "" 
     local session_header = "X-Crawlera-Session" 
     local session_id = "create" 

     splash:on_request(function (request) 
      request:set_header("X-Crawlera-UA", "desktop") 
      request:set_header(session_header, session_id) 
      request:set_proxy{host, port, username=user, password=password} 
     end) 

     splash:on_response_headers(function (response) 
      if response.headers[session_header] ~= nil then 
       session_id = response.headers[session_header] 
      end 
     end) 

     splash:go(splash.args.url) 
     return splash:html() 
    end 
    """ 
    for link in load['d']['blogtopics']: 
     link = link['Uri'] 
     yield SplashRequest(link, self.parse_blog, endpoint='execute', args={'wait': 3, 'lua_source': LUA_SOURCE}) 


2017-03-29 09:26:37 [scrapy.core.engine] DEBUG: Crawled (503) <GET http://community.martindale.com/legal-blogs/Practice_Areas/b/corporate__securities_law/archive/2011/08/11/sec-adopts-new-rules-replacing-credit-ratings-as-a-criterion-for-the-use-of-short-form-shelf-registration.aspx via http://localhost:8050/execute> (referer: None) 
+1

다음과 같은 공개 문제가 있습니다. https://github.com/scrapy-plugins/scrapy-splash/issues/107 –

+0

내 지원 티켓에 버그가 확인되었습니다. 잘만되면 곧 수정 될 것입니다. 나는 튀김을 포기하고 싶지 않다. – eusid

+0

@eusid crawlera가 더 많은 사용자 정의 스플래시 코드를 필요로한다고 생각합니다. 여기에서 예제를 확인할 수 있습니까? https://doc.scrapinghub.com/crawlera.html#using-crawlera-with-splash? –

답변

2

Crawlera 미들웨어 때문에 문제가 발생한 것 같습니다. SplashRequest에 대한 처리는 없습니다. 프록시를 통해 로컬 호스트에 연결하려고합니다.