我正在尝试创建一个excel电子表格,汇总来自Google Chrome上的在线调查的所有回复,有超过500个条目,并点击每个条目以获得结果将永远。
我已经确定了Google Chrome上的问题>检查>具有多个显示结果的点处的元素点击。有没有办法删除onclick,以便能够一次下载或复制粘贴所有结果?
我附上了一张图片:
我很感激有关如何做到这一点的任何建议!提前道歉,因为我完全没有编程经验所以我可能没有得到所有的术语。
答案 0 :(得分:0)
在我看来,最简单,技术最低的方法就是将整个内容粘贴到Notepad ++(免费)等文本编辑器中,然后做很多事情,然后更换所有"删除你不想要的东西(通过空白替换)。
例如,替换" tr onclick =" displayResults(" by""(即空白)
答案 1 :(得分:0)
修改强>
您应该查看在线调查服务,因为应该有一种方法将您的结果导出到csv (可以在Excel中打开csv)。 (作者表示没办法)
在使用网站抓取代码之前,请确保以这种方式抓取数据时服务正常。代码不应被视为恶意或意味着违反协议条款。
如果您提供的结构是一致的,那么您应该能够复制下面的代码(或者从小提琴中的javascript窗格),在包含数据的页面上的控制台中运行它(F12,chrome中的控制台选项卡) ),数据应打印到您可以复制它的控制台,然后使用在线工具(like this)将其从json转换为csv for excel。
var getData = () => {
var table = document.getElementById('table_survey'); // get table
var data = []; // holds all the data
for (i = 0; i < table.rows.length; i++) { //loops through rows
var pieceOfData = {}
var cells = table.rows.item(i).cells; //gets cells
for (var j = 0; j < cells.length; j++) { //loops through each cell
var cellVal = cells.item(j).innerHTML; // get piece of data
// store data in object dependent on index
//assumes only 4 <td>s with valid data
switch (j) {
case 0:
pieceOfData.id = cellVal
case 1:
pieceOfData.data1 = cellVal
case 2:
pieceOfData.data2 = cellVal
case 3:
pieceOfData.day = cellVal
}
}
data.push(pieceOfData); // add data object to array
}
return data; // return all the data
}
var allData = getData(); // puts all the data in a variable
console.log(allData); // print data to console
答案 2 :(得分:0)
最简单的解决方案是在处理CSV时关闭浏览器的Javascript,并在完成后重新打开它。 onclick
正在执行Javascript,如果您的浏览器已关闭,则不会执行。
这应该可行,但是,如果需要Javascript来显示您需要提取的数据,那么您需要打开Javascript,但是您可以覆盖displayResult
作为虚拟函数,因此您不会在浏览器控制台中单击时遇到有问题的行为:
displayResult = function() {};
这应该有效,但如果由于某种原因displayResult
被重新定义,那么您可以删除每个元素的onclick
。如果手动执行的元素太多,那么您可以在控制台中执行类似的操作:
var survey = document.querySelectorAll("#table-survey tr");
for (var index = 0; index < survey.length; index++) {
survey[index].onclick = "";
}