使用纯js(硒)将html表格文本转换为json数据

霍瓦内斯·汉巴祖米扬

我在编程和 JS 方面很新,所以我想要做的是(在 Visual Code 上使用 Selenium Webdriver)从页面中获取 html 表格内容并将其转换为 JSON 数据。我成功地抓取了表格数据,但转换似乎非常困难。

所以请帮助我解决我遇到的问题,如果有人之前做过...谢谢

抱歉大家有点抽象,所以这是我的代码......

var webdriver = require('selenium-webdriver'),
    By = webdriver.By,
        until = webdriver.until;

var driver = new webdriver.Builder().forBrowser('chrome').build();

    driver.get('https://www.w3schools.com/html/html_tables.asp');

driver.sleep(15000).then(function () {

    var table = [];

for (var i = 2; i < 8; i++) {

    for (var k = 1; k < 4; k++) {
        driver.findElement(By.xpath('//*[@id="customers"]/tbody/tr[' + 
        i + ']/td[' + k + ']')).getText().then(function(name){
            table.push(name);
        });
    }
}
driver.sleep(10000).then(function () {

    console.log(table);

    });
});

这是输出...

[ 'Alfreds Futterkiste',
  'Maria Anders',
  'Germany',
  'Centro comercial Moctezuma',
  'Francisco Chang',
  'Mexico',
  'Ernst Handel',
  'Roland Mendel',
  'Austria',
  'Island Trading',
  'Helen Bennett',
  'UK',
  'Laughing Bacchus Winecellars',
  'Canada',
  'Magazzini Alimentari Riuniti',
  'Giovanni Rovelli',
  'Italy',
  'Yoshi Tannamuri' ]

我想要 JSON 格式的数据,像这样......

[
{ 'Company': 'Alfreds Futterkiste', 'Contact': 'Maria Anders', 
'Country': 'Germany'} ,
{ 'Company': 'Centro comercial Moctezuma', 
'Contact': 'Francisco Chang', 'Country': 'Mexico'} ,

....... 等等....

提前致谢 !

赫尔曼·内普尔

有多种方法可以解决这个问题,最简单也可能是最懒惰的方法是使用一个临时数组来存储每一列。

    var table = [];

for (var i = 2; i < 8; i++) {
    var tempArray = [];
    for (var k = 1; k < 4; k++) {
        driver.findElement(By.xpath('//*[@id="customers"]/tbody/tr[' + 
        i + ']/td[' + k + ']')).getText().then(function(name){
                 tempArray.push(name);
                        });
        table.push({"Company":tempArray[0], "Contact":tempArray[1], "Country":tempArray[2]});
    }
}

希望这可以帮助

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章