使用 javascript 从 chrome 控制台抓取网站

问题描述

我正在尝试抓取一个包含 1000 个元素的表格的网页。每当单击表中的元素时,网页都会更新标签。从 chrome 控制台,我想点击每个元素,等待标签更新并下载标签。目前我正在做以下事情:

for(i = 0; i < 1000; i++){
  document.querySelectorAll('element_in table')[i].click()
  text = document.querySelector('tag_to_read_from').innerHTML
  // download text
}

问题是在点击表格中的元素后更新标签有延迟。结果,由于 javascript 的异步特性,脚本正在下载 1000 个空文件

有没有办法在点击一个元素后等待 X 秒,然后下载更新的标签

解决方法

function scrape (index,max) {
  document.querySelectorAll('element_in table')[index].click();
  
  setTimeout(() => {
    // download text

    if (index < max) scrape(++index,max);
  },5000);
}

scrape(0,1000);

您可以使用超时来延迟逻辑。选择一个足够大的时间。