提取网页中的表单数据

By | 2025-04-07

通过F12提取网页中的表单数据

  • 1、通过CSS选择器(基于位置):

    # 假设目标列是第三列且所有 <td> 的 class 为 data-class
    td.data-class:nth-child(3)
    # 如果所有行结构一致:
    tr > td.data-class:nth-of-type(3)
    

    2、通过XPath选择

    //td[@class='data-class'][position()=3]
    # 或结合父级定位:
    //tr/td[@class='data-class'][3]
    
  • 在控制台提取数据
    1、CSS

    // 获取所有第三列的文本内容
    let cells = document.querySelectorAll('td.data-class:nth-child(3)');
    cells.forEach(cell => console.log(cell.textContent));
    let data = Array.from(cells).map(cell => cell.textContent.trim());
    // 生成下载链接
    const blob = new Blob([JSON.stringify(data, null, 2)], { type: 'application/json' });
    const url = URL.createObjectURL(blob);
    const a = document.createElement('a');
    a.href = url;
    a.download = 'output.json';
    a.click();
    URL.revokeObjectURL(url);
    

    2、XPath

    const xpath = '//td[@class="data-class"][3]';
    const result = document.evaluate(xpath, document, null, XPathResult.ANY_TYPE, null);
    let data = [];
    let cell = result.iterateNext();
    while (cell) {
    data.push(cell.textContent.trim());
    cell = result.iterateNext();
    }
    // 生成JSON下载链接
    const blob = new Blob([JSON.stringify(data, null, 2)], { type: 'application/json' });
    const url = URL.createObjectURL(blob);
    const a = document.createElement('a');
    a.href = url;
    a.download = 'xpath_output.json';
    a.click();
    URL.revokeObjectURL(url);