사용 방법 : Rails 3.1.1레일즈 보석 GoogleAjax. 더 많은 검색을 수행하려면 어떻게해야합니까?
나는 googleajax gem을 사용하여 수천 개의 검색으로 구성된 스크립트에서 Google 검색을 수행하고 있습니다.
약 20 회 정도 검색 한 후에 일정한 양의 검색을 연속적으로 수행 할 수없는 것처럼 보일 때까지 기다렸다가 다시 시도하는 구조가 필요합니다. 약 1 분 후에 다시 시도하면 검색이 10 번 더 계속됩니다. 결과적으로 10 개의 검색을 수행하는 데 약 1 분이 걸리므로 스크립트가 매우 느려집니다.
Google은 googleajax 리퍼러를 기반으로 한 IP 기반 검색을 수행 할 수있는 검색 량이 차단 된 것으로 보이지만 그 방법이 있습니까?
Google 검색을 googleajax 보석을 통해 수행하려면 항상 일시 중지하고 대기하지 않아도됩니다. 내가 가질 수있는 대안은 무엇입니까?
코드 (중요하지 않은 부분을 잘라와 함께) :
begin
puts "Searching with " + gsquery
results = GoogleAjax::Search.web(gsquery)[:results]
if results.count > 0
puts "#{results.count} results found for #{page.name}. Registering the connection!"
end
rescue
puts "Try again in 3 sec"
sleep 3
retry
rescue Timeout::Error
puts "Timeout Error, sleep 15 sec"
sleep 15
retry
end
감사합니다. Chris! 나는 이것이 대답이 될까 봐 걱정했다. 그러나 그 전에 GoogleAjax를 해킹하여 더 많은 검색을 수행 할 방법이없는 것입니까? 나는 IP 당 검색 수에 제한이 설정되어 있다고 생각한다. : nr 또는 무엇인가? 여러 대의 컴퓨터 (서버)에서 스크립트를 실행하거나 IP를 인위적으로 변경하면 더 효과적일까요? 아마도 추천 URL을 변경하십시오 (아직 스크립트가 실행되고 있기 때문에 아직 테스트하지 못했습니다)? 그것도 가능합니까, 아니면 Google이 내 손가락을 때 리겠습니까? 150,000 건의 검색 (질문하지 않음)이 있으며 지금 바로 그 금액을 지불하게되어 기쁩니다. – Christoffer
필자의 이해는 제한이 API 키 기반을 기반으로한다는 것입니다 (이것은 새로운 API의 경우에만 해당 될 수 있음).API 키를 설정하지 않으면 고정 IP API와 같은 경우 IP 주소 당 제한이 있다고 가정합니다. –