2016-06-21 2 views
0

그래서 로컬 컴퓨터에서 완벽하게 실행되는 nokogiri 웹 스크래핑을 사용합니다.레일 URL 링크가있는 프록시 사용

그러나 제작 환경에서 웹 스크래핑을 실행하면 403 오류 코드가 표시됩니다.

나는 이것이 내 서버 내 IP를 차단하는 웹 사이트에 다운 생각

이 경로에 프록시 서버를 통해 내 웹 서버에서 노코 기리 요청이 가능 (아마 IP를 사용하여 이전의 사람들은 그것을 차단했기 때문에) ? 그렇다면 어떻게해야할까요?

이것은 현재 내가 가지고있는 코드입니다.

doc = Nokogiri::HTML(open(URL HERE, 'User-Agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.854.0 Safari/535.2')) 
+0

어디에서 403을 얻고 있습니까? 당신이 긁어 모으는 웹 사이트 에서요? – thesecretmaster

+0

실제로 나는 그들이 서버 IP 주소를 차단했다는 인상하에있다. 그 이유는 내가 프록시라고 생각했기 때문이다. –

+0

Mechanise와 프록시를 사용할 수 있습니까? 봐 [여기] (http://stackoverflow.com/questions/18348673/how-do-i-configure-a-ruby-mechanize-agent-to-work-through-the-charles-web-proxy) 또는 [여기 ] (https://gist.github.com/emergent/3983870) –

답변

0

사실, 당신은 단순히 OpenURI open 방법의 :proxy 매개 변수를 사용할 수 있습니다. 또한

open(*rest, &block) 
#open provides `open' for URI::HTTP and URI::FTP. 

... 

The hash may include other options, where keys are symbols: 
:proxy 

Synopsis:  
:proxy => "http://proxy.foo.com:8000/" 
:proxy => URI.parse("http://proxy.foo.com:8000/") 

If :proxy option is specified, the value should be String, URI, boolean or nil. 

, 일반적인 고려 사항 (지금 지루한 것), 당신은이 정기적으로 이루어집니다 특히, 폐기 콘텐츠에 대안을 검색합니다. 지원되는 API 또는 대체 소스와 같은 것. 현재 서버 IP가 차단 된 경우에도 프록시에 동일한 문제가 발생할 수 있습니다.

+0

좋은 프록시에 대한 아이디어가 있습니까? –

+1

아마도 당신은 좋은 프록시를 얻지 못할 것입니다. 무료 프록시는 무작위로 작동하며 가끔씩 작업을 중단합니다. 당신은 그 (것)들과 일할 수있다, 그러나 신뢰할 수 있어야하는 무언가를 위해 아닙니다. 신뢰할 수있는 프록시의 경우 유료 서비스를 검색해야하며 많은 서비스가 있으며 어떤 서비스가 좋든 나쁘 든 판단 할 수 없습니다. –

+1

일반적인 고려 사항 (현재 지겨운 일임)으로, 특히 정기적으로 수행되는 경우 콘텐츠 폐기 관련 대안을 찾아야합니다. 지원되는 API 또는 대체 소스와 같은 것. 현재 서버 IP가 차단 된 경우에도 프록시에 동일한 문제가 발생할 수 있습니다. –