How do I get the final URL from a redirect link? (like requests.get from python)?

I'm using a SERP API to return Google Shopping links, and sometimes it returns Google aclk redirect links. In Python, the requests.get command and accessing the .url field gives me what I'm looking for. I tried using python within Matlab and it works with a single url, but when I try to use within a for loop it always freezes.

Answers (1)

You can use the matlab.net.http interface to follow the redirects.
request = matlab.net.http.RequestMessage;
uri = matlab.net.URI('https://goo.gl/maps/co8U2mMv8zFweDzN8');
[response,completedrequest,history] = send(request,uri);
finaluri = history(end).URI;
disp(finaluri);
URI with properties: Scheme: "https" UserInfo: [0×0 string] Host: "www.google.com" Port: [] EncodedAuthority: "www.google.com" Path: ["" "maps" "place" "Houston,+TX,+USA" "@29.8174782,-95.6814846,10z" "data=!3m1!4b1!4m5!3m4!1s0x8640b8b4488d8501:0xca0d02def365053b!8m2!3d29.7596088!4d-95.3723145"] EncodedPath: "/maps/place/Houston,+TX,+USA/@29.8174782,-95.6814846,10z/data=!3m1!4b1!4m5!3m4!1s0x8640b8b4488d8501:0xca0d02def365053b!8m2!3d29.7596088!4d-95.3723145" Query: [1×1 matlab.net.QueryParameter] EncodedQuery: "shorturl=1" Fragment: [0×0 string] Absolute: 1 EncodedURI: "https://www.google.com/maps/place/Houston,+TX,+USA/@29.8174782,-95.6814846,10z/data=!3m1!4b1!4m5!3m4!1s0x8640b8b4488d8501:0xca0d02def365053b!8m2!3d29.7596088!4d-95.3723145?shorturl=1"

Asked:

on 7 Aug 2020

Answered:

on 7 Apr 2022

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!