Javascript 是否可以让提取等待重定向?

Javascript 是否可以让提取等待重定向?,javascript,google-chrome-extension,fetch,Javascript,Google Chrome Extension,Fetch,我目前正在从web扩展动态抓取网页,并使用以下代码: let url = "https://lykdat.com/search-result/?image_url=https://anf.scene7.com/is/image/anf/KIC_330-2455-0904-476_prod1?$product-hol-v1$&wid=800&hei=1000"; fetch(url,{redirect: 'follow'}).then(r => r.text()).then

我目前正在从web扩展动态抓取网页,并使用以下代码:

let url = "https://lykdat.com/search-result/?image_url=https://anf.scene7.com/is/image/anf/KIC_330-2455-0904-476_prod1?$product-hol-v1$&wid=800&hei=1000";

fetch(url,{redirect: 'follow'}).then(r => r.text()).then(result => {
  console.log(result);
  var el = document.createElement( 'html' );
  el.innerHTML = result;
  // console.log(typeof(tempPage));
  console.log(el);
  tempImgs = el.getElementsByTagName('img');
  console.log(tempImgs);
})

我希望能够更改“image\u url=”之后的任何文本,以便更改插入网站的图像。不幸的是,我试图从中提取信息的页面是在短暂的加载期之后出现的,因此使用“fetch”功能只能从加载屏幕中提取信息,而不是我想要的实际页面。重定向不是即时的,可能需要3-30秒,我想知道是否有办法在抓取数据之前强制fetch等待重定向。非常感谢您提供的任何帮助

使用
wait
,你需要你的函数是一个异步函数才能工作

async function YourFunctionName (){
  let url = "https://lykdat.com/search-result/?image_url=https://anf.scene7.com/is/image/anf/KIC_330-2455-0904-476_prod1?$product-hol-v1$&wid=800&hei=1000";

  var promise = await fetch(url,{redirect: 'follow'}).then(r => r.text()).then(result => {
  console.log(result);
  var el = document.createElement( 'html' );
  el.innerHTML = result;
  // console.log(typeof(tempPage));
  console.log(el);
  tempImgs = el.getElementsByTagName('img');
  console.log(tempImgs);
})
}

YourFunctionName();

虽然我自己不知道JavaScript,但我会使用PHP的。查看loadHTMLFile,比如
$dom=newDOMDocument$dom->loadHTMLFile($urlHere)$imgs=$dom->getElementsByTagName('img');foreach($imgs as$img){$src=$img->getAttribute('src');/*$src是循环中每个图像的src属性*/}
。页面正在使用脚本重定向到最终结果,因此无论您等待多长时间,它们都不会出现在初始HTML响应中-这是因为
fetch
不运行脚本。您需要将该站点嵌入iframe中,声明一个包含
“all_frames”:true
和匹配URL模式的内容脚本,以便它在该iframe中运行,然后通过消息传递()将结果传递回来。由于某些原因,此解决方案对于我请求的特定网页仍然不起作用。我相信这是因为页面可以完全加载,这满足等待函数的条件,但工作仍在云计算机上进行。我相信这就是为什么加载页面仍使用此代码的原因。您是否知道如何强制代码等待重定向,或者代码是否因其他原因出现故障?谢谢你的帮助!原始代码已经正确地使用了Promise API,所以这个答案完全不正确。