【问题标题】:CasperJS getting innerHTML of element by classCasperJS按类获取元素的innerHTML
【发布时间】:2015-05-27 15:00:51
【问题描述】:

我是 CasperJS 的新手,在从 <p class="city">Data I Need</p> 中获取 innerHTML 时遇到了一些问题

我已经尝试了一些东西,但似乎没有得到它。

var city_name= casper.evaluate(".//*[@class='city_name']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
var friend_username = city_name.innerHTML;

var city_name = this.evaluate(function() {
    return document.querySelector(".//*[@class='city_name']").innerHtml;
});

【问题讨论】:

    标签: javascript xpath web-scraping casperjs


    【解决方案1】:

    CasperJS 默认使用 CSS 选择器:

    var city_name = casper.evaluate(function() {
        return document.querySelector(".city_name").innerHTML;
    });
    

    请注意,该属性是 innerHTML 而不是 innerHtml。另请注意,casper.evaluate() 是页面上下文的接口,与document.evaluate() 无关。

    您当然可以通过 CasperJS 实用程序使用 XPath 表达式。 casper.getElementInfo() 之类的函数为您提供了一些附加属性,例如 html,它实际上是相应 DOM 元素上的 innerHTML 属性。

    var x = require("casper").selectXPath;
    ...
    var city_name = casper.getElementInfo(x(".//*[@class='city_name']")).html;
    

    【讨论】:

      【解决方案2】:

      对我来说,我喜欢使用 casper 的 getElementInfo() 方法:

      casper.getElementInfo('<insert CSS selector>').html

      或者在我的情况下,我想要内部文本:

      casper.getElementInfo('<insert CSS selector>').text

      【讨论】:

        猜你喜欢
        • 2015-12-10
        • 1970-01-01
        • 1970-01-01
        • 2023-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多