chrome爬页面上表格某列的数据

有的时候会有这样一个需求,页面上有个大表格,我需要复制里面的一列到本地。比如,我要从表格里面,复制列出来的所有机器IP(这样比数据库导出方便点~)

首先,先用chrome的开发者工具,找到要复制的列中的某一个单元格,然后选择复制xpath。这样会复制下来这个元素的xpath路径,比如:

//*[@id="machineGroupTable"]/tbody/tr[2]/td[2]

chrome的console,支持用$x()函数直接用xpath来定位元素,因此,可以通过类似这样的js,来获取刚选中单元格所在的所有列:
[cce lang="javascript"]
$x('//[@id="machineGroupTable"]/tbody//td[2]')
[/cce]
这样返回的是chrome经过处理的xpath结果,直接就是dom的数组,因此可以直接遍历,获取单元格中的文本。
[cce lang="javascript"]
var ip=[];
$x('//
[@id="machineGroupTable"]/tbody//td[2]').forEach(function(e){ip.push(e.innerText)})
[/cce]
这样就把这列的所有内容,放到了ip这个数组中。

最后,把ip数组复制出来:
[cce lang="javascript"]
copy(ip.join('\n'))
[/cce]
copy也是chrome console内置的命令,可以把传进去的参数复制到剪切板。注意这里要自己join下,不然会直接输出json格式的字符串。

这样,表格的列已经被复制到了剪切板,直接粘贴到需要的文本中即可。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据