有没有人知道有没有一种简单的方法来记录url重定向路径上的所有url?
例如: url:(url 1)重定向到(url 2),后者重定向到(url 3)。
我想写一个脚本,接受字符串(url 1)的输入,并返回(url 2)和(url 3)。
有没有简单的方法可以做到这一点(理想情况下不使用javascript)?
发布于 2013-10-14 18:44:00
在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范围)时才有效。
发布于 2013-10-10 16:20:53
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/"]
发布于 2013-10-10 16:51:08
给定来自LWP的$response
,
my @request_uris;
while ($response) {
unshift @request_uris, $response->request->uri;
$response = $response->previous;
}
https://stackoverflow.com/questions/19299387
复制