记录网址重定向



有谁知道是否有一种简单的方法来记录URL重定向路径上的所有URL?

例如:url: (url 1( 重定向到 (url 2(,后者重定向到 (url 3(。

我想编写一个脚本,该脚本接受字符串(url 1(的输入并返回(url 2(和(url 3(。

有没有一种简单的方法可以做到这一点(理想情况下不使用javascript(?

在 python 中:

import requests
url = 'http://google.com'
r = requests.get(url)
urls = [e.url for e in r.history]+[r.url]

然后你会得到:

>>>urls
[u'http://google.com', u'http://www.google.com/']

仅当重定向位于 HTTP 层(30X 范围(时,它才有效

给定来自 LWP 的$response

my @request_uris;
while ($response) {
   unshift @request_uris, $response->request->uri;
   $response = $response->previous;
}
require 'net/http'
def redirect_tracker(url)
  paths_array = [url]
  code = nil
  begin
    response = Net::HTTP.start(URI.parse(url).host){|http| http.request Net::HTTP::Head.new(url) }
    code = response.code.to_i
    paths_array << url if url = response['location']        
  end while (301..303).include?(code)
  return paths_array
end
redirect_tracker('http://google.com') 
# => ["http://google.com/", "http://www.google.com/"]

相关内容

  • 没有找到相关文章

最新更新