2013-10-17 3 views
-1

URL이있어서 리디렉션되는 URL을 검색해야합니다 (리디렉션 수가 임의적입니다).URL 리디렉션은 어떻게 수행합니까?

내가 일하고 있어요 하나의 실제 예는 다음과 같습니다

https://www.google.com/url?q=http://m.zynga.com/about/privacy-center/privacy-policy&sa=D&usg=AFQjCNESJyXBeZenALhKWb52N1vHouAd5Q 

이는 결국로 리디렉션됩니다. 내가 관심이있는 URL이

http://company.zynga.com/privacy/policy 

내가 시도 으로 다음과 같이 표현됩니다.

privacy_url = "https://www.google.com/url?q=http://m.zynga.com/about/privacy-center/privacy-policy&sa=D&usg=AFQjCNESJyXBeZenALhKWb52N1vHouAd5Q" 
final_url = nil 
open(privacy_url) do |h| 
    puts "Redirecting to #{h.base_uri}" 
    final_url = h.base_uri 
end 

이지만 원래 URL이 계속 유지됩니다. 즉, final_urlprivacy_url과 같습니다.

이러한 종류의 리디렉션을 따르고 프로그래밍 방식으로 결과 URL에 액세스 할 수있는 방법이 있습니까?

답변

0

기계화 보석을 사용하여 마침내 만들었습니다. 핵심은 follow_meta_refresh 옵션을 활성화하는 것입니다.이 옵션은 기본적으로 비활성화되어 있습니다.

는 방법은 다음과 같습니다

require 'mechanize' 

browser = Mechanize.new 
browser.follow_meta_refresh = true 

start_url = "https://www.google.com/url?q=http://m.zynga.com/about/privacy-center/privacy-policy&sa=D&usg=AFQjCNESJyXBeZenALhKWb52N1vHouAd5Q" 
final_url = nil 
browser.get(start_url) do |page| 
    final_url = page.uri.to_s 
end 
puts final_url # => http://company.zynga.com/privacy/policy 
있어
관련 문제