Node.js中fetch无法检测到浏览器可识别的URL重定向问题求助
Node.js中fetch无法检测到浏览器可识别的URL重定向问题求助
嘿,各位大佬,我最近碰到个头疼的问题,想请大家帮忙看看!
我的需求是检测一个URL是否会重定向到其他地址,如果是的话,获取最终跳转后的目标URL。拿https://eu.gymshark.com来举例:在浏览器里访问这个链接时,它会正常跳转到https://eu.shop.gymshark.com,但我用下面这段node-fetch代码运行后,输出的却还是原URLhttps://eu.gymshark.com。不过奇怪的是,同样的代码在测试https://dior.com.my/(会跳转到https://shop.dior.com.my/)时却能正常工作,这到底是哪里出问题了?
我的代码如下:
const fetch = require("node-fetch") async function getRedirects(url){ const header = new fetch.Headers( {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}) let response = await fetch(url, {"headers": header, redirect: 'follow', follow: 10}) return response.url } getRedirects("https://eu.gymshark.com").then((data) => console.log(data));
我猜会不会是gymshark的重定向方式和dior不一样?比如是不是用了客户端JavaScript来实现跳转,而node-fetch只会处理HTTP 3xx状态码的服务器端重定向,不会执行页面里的JS?如果是这样的话,我该怎么修改代码才能捕获到这种客户端重定向呢?
期待大家的指点!
备注:内容来源于stack exchange,提问作者Burak Toy
相关产品推荐
相关产品推荐

