首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >记录url重定向

记录url重定向
EN

Stack Overflow用户
提问于 2013-10-10 23:00:57
回答 3查看 107关注 0票数 1

有没有人知道有没有一种简单的方法来记录url重定向路径上的所有url?

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

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

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

EN

回答 3

Stack Overflow用户

发布于 2013-10-15 02:44:00

在python中:

代码语言:javascript
代码运行次数:0
运行
复制
import requests

url = 'http://google.com'

r = requests.get(url)

urls = [e.url for e in r.history]+[r.url]

然后你就会得到:

代码语言:javascript
代码运行次数:0
运行
复制
>>>urls
[u'http://google.com', u'http://www.google.com/']

只有当重定向在http层( 30x范围)时才有效。

票数 1
EN

Stack Overflow用户

发布于 2013-10-11 00:20:53

代码语言:javascript
代码运行次数:0
运行
复制
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/"]
票数 0
EN

Stack Overflow用户

发布于 2013-10-11 00:51:08

给定来自LWP的$response

代码语言:javascript
代码运行次数:0
运行
复制
my @request_uris;
while ($response) {
   unshift @request_uris, $response->request->uri;
   $response = $response->previous;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19299387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档