Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript console.log的未定义数据';t日志_Javascript - Fatal编程技术网

Javascript console.log的未定义数据';t日志

Javascript console.log的未定义数据';t日志,javascript,Javascript,我正在尝试使用此脚本从www.matchbook.com获取数据 function scrape(){ var row = document.querySelectorAll(".mb-runner")[0]; //get rows console.log(row.textContent); //log row content }setInterval(scrape, 1000); 此代码生成不带分隔符的内联数据ArsenalArsenal1.347$2591.349$208171.3

我正在尝试使用此脚本从www.matchbook.com获取数据

function scrape(){
  var row = document.querySelectorAll(".mb-runner")[0]; //get rows
  console.log(row.textContent); //log row content
}setInterval(scrape, 1000);
此代码生成不带分隔符的内联数据ArsenalArsenal1.347$2591.349$208171.352$4811.363$112331.368$114571.379$9948。你知道我应该如何分离这些数据吗

在这里,我发布了一个屏幕,显示数据在web上的外观 试试这个

如果只需要第一个元素,则无需
querySelectorAll

首先找到父元素,仅当元素存在时才查找价格

对元素和文本内容进行空检查(&T)

function scrape(){
  var x = document.querySelector(".mb-price");
  var y = x && x.querySelector('.mb-price__odds');
  if (y && y.textContent){ 
    console.log(y.textContent);
  }
  else {
    console.log('No Content');
  }
}

当该单元格的内容更改为
makeoffer
时,它不再具有
mb-price\u赔率
类,因此选择器匹配下一个单元格

使用容器的类,而不是按此单元格的类进行选择,我认为这不会消失

然后,在尝试访问
.textContents
之前,请检查此内容是否匹配任何内容

function scrape() {
  var cell = document.querySelector(".mb-price:first-of-type .mb-price__odds");
  if (!cell) {
    console.log("Log me null please, do not skip to another cell !");
  } else {
    console.log(cell.textContents);
  }
}

最后,我通过以下javascript代码解决了我的问题:

function scrape(){
  var radek = document.querySelectorAll(".mb-runner")[2];//row
  var bunka = radek.querySelectorAll(".mb-price")[0]; //cell
  console.log(bunka.textContent); //cell value
}setInterval(scrape, 1000); //run every second

听起来像是在选择一个有类的单元格。。。。。我的猜测是,当它为空时,它没有类……日志代码不能记录与您选择的单元格不同的单元格。你能提供一个例子来说明这个问题吗(我不确定你建议我们在matchbook.com网站上做什么)?@epascarello说得好。可能就是这种类型的问题。@Barmar例如,我没有发布具体的url,因为投注经常关闭,所以我决定只提到matchobook.com,您可以在这里尝试记录您想要的投注表。@Barmar记录代码记录的单元格与我选择的单元格不同。你可以试试。你已经改变了问题!
.mb runner
来自何方,
.mb-price\u赔率发生了什么事
?我深入研究了页面结构,发现将整个表作为目标比将整行和整单元格作为目标要好,而不是将不有效的硬类作为目标。现在我的脚本记录了我想要的数据,但现在我必须找到一种方法,如何将console.logged数据导出到一些*.txt文件。如果您作为浏览器扩展名执行此操作,也许它可以在另一个浏览器窗口中显示此内容,而不是使用console.log,然后您可以将窗口保存到一个文件中。您能解释一下方法吗?:)我不使用任何浏览器扩展。我建议您编写一个包含此代码的浏览器扩展。这里有一些关于如何编写扩展的教程,我不打算在这里解释。