【问题标题】:How to get elements using getElementsByClassName?如何使用 getElementsByClassName 获取元素?
【发布时间】:2021-09-08 18:01:43
【问题描述】:

我正在使用 nightmareJS 并尝试使用 document.getElementsByClassName 进行网络抓取,这是代码:

import Nightmare from 'nightmare'
const nightmare = Nightmare({ show: true })
var name = name
nightmare
    .goto('https://www.amazon.com/')
    
    .insert("input[aria-label='Search']", 'impressora')
    .click("input[value='Go']")
    .wait(2000)
    
    .evaluate(function(){
        let text = document.getElementsByClassName('a-offscreen')[0];
        name = text;
        return name;
            
    }).then(function (name)  {
        console.log('Price:', name)
        
    });

The code gets until here

输出是这样的:

Price: [object HTMLSpanElement]

我想得到的是“a-offscreen”类中的价格。任何人都可以帮忙吗?谢谢。

【问题讨论】:

  • return document.querySelector('.a-offscreen span').innerText;(您正在尝试打印元素本身,而不是其中的文本)

标签: javascript web-scraping nightmare


【解决方案1】:

document.getElementsByClassName(class); 返回具有查询类但不包含其内容的元素集合,因此您必须访问元素的 innerText 属性:

let text = document.getElementsByClassName('a-offscreen')[0].innerText;
name = text;
return name;

输出将是:

Price: $199.99

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-20
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 2017-06-24
    • 1970-01-01
    • 2021-04-04
    • 1970-01-01
    相关资源
    最近更新 更多