2013-08-19 1 views
0

Я использую nodeJS и request module. Я пытаюсь очистить данные с веб-страницы, но мои данные поступают из API, который дает мне только ссылки для отслеживания ссылок.Получение текущего URL-адреса из модуля REQUEST от NodeJS

Например, эта ссылка:

http://www.kqzyfj.com/click-7227532-11292048?url=http%3A%2F%2Fwww.urbanoutfitters.com%2Furban%2Fcatalog%2Fproductdetail.jsp%3Fid%3D27074590 

На самом деле ведет здесь:

http://www.urbanoutfitters.com/urban/catalog/productdetail.jsp?id=27074590&cm_mmc=CJ-_-Affiliates-_-Threadfinder-_-11292048 

Я знаю, что большинство из ссылки вложена в оригинальный URL, но это ISN» всегда всегда, так что, пожалуйста, проигнорируйте его/не отправляйте ответы, которые предлагают regex'ing мой выход из этого!

Используя запрос, как я могу захватить страницу Профиль URL (то есть, вторая ссылка, что первые переадресовывает к) и хранить его в качестве переменной?

ответ

1

Это должно сделать это:

request(url, function(err, res, body){ 
    // get final redirect url 
    if(this.redirects.length){ 
     var destUrl = this.redirects[this.redirects.length-1].redirectUri; 
     console.log(destUrl); 
    } 
}); 
0

Извлекает line #77 of request.js:

Он предоставляет внутренний массив в объект ответа именем redirects:

var request = require('request'); 
var url = "http://www.kqzyfj.com/click-7227532-11292048?url=http%3A%2F%2Fwww.urbanoutfitters.com%2Furban%2Fcatalog%2Fproductdetail.jsp%3Fid%3D27074590"; 

request(url, function (error, response, body) { 
    if (!error && response.statusCode == 200) { 
    console.log("%j", response['request']['redirects']) 
    } 
}) 

Затем вы можете найти JSON представление массива с историей редирект включая код статуса и URL переадресации. (Я нашел там уже 3 перенаправляет из URL предоставленных Вами)

+0

Я немного запутался об использовании приложения здесь (особенно '% j' части), можете ли вы обновить свой код, чтобы ответить на конкретный пример использования выше? – Jascination

+0

Часть '% j' означает, что она выведет JSON-представление объекта. Угадайте, что вам просто нужен только URL, но, правда, может быть история перенаправления, где вы можете найти историю при запуске моего кода. – shawnzhu