Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何正确使用getElementByXpath和GetElementsByPath?_Javascript_Html_Web Scraping_Casperjs - Fatal编程技术网

Javascript 如何正确使用getElementByXpath和GetElementsByPath?

Javascript 如何正确使用getElementByXpath和GetElementsByPath?,javascript,html,web-scraping,casperjs,Javascript,Html,Web Scraping,Casperjs,如何使用CasperJS获取表“td”值 HTML源代码如下所示: 某物的名称 头像 某物的名称 某物的名称 某物的名称 某物的价值 某物的价值 某物的价值 某物的价值 某物的价值 某物的价值 某物的价值 某物的价值 某物的价值 某物的价值 某物的价值 某物的价值 某物的价值 某物的价值 某物的价值 我想使用CasperJS获取表值。首先,我需要选择表中的行;然后我想得到“td”值。我怎样才能解决这个问题 我尝试了很多方法,但都不管用。我的解决方案与下面的类似。重要的是,首先选择“表_行”;

如何使用CasperJS获取表“td”值

HTML源代码如下所示:


某物的名称
头像
某物的名称
某物的名称
某物的名称
某物的价值
某物的价值
某物的价值
某物的价值
某物的价值
某物的价值
某物的价值
某物的价值
某物的价值
某物的价值
某物的价值
某物的价值
某物的价值
某物的价值
某物的价值
我想使用CasperJS获取表值。首先,我需要选择表中的行;然后我想得到“td”值。我怎样才能解决这个问题

我尝试了很多方法,但都不管用。我的解决方案与下面的类似。重要的是,首先选择“表_行”;然后在for循环中选择这是td值

var table_rows=casper.getElementsByXpath(//table[@id='my_table']]/tr[not(@id='header')”;
对于(变量i=0;i
CasperJS有两个上下文。您只能直接从页面上下文访问DOM,您可以在1内部访问该页面上下文。它是沙盒,因此在
evaluate()
中无法使用外部定义的变量

\uu utils\uu.getElementByXpath()
仅在
casper
不可用的页面上下文中可用。这两个函数直接返回DOM节点,因此这些节点本身没有
getElementByXpath()
函数

但你根本不需要这些:

casper.then(function(){
    var info = this.evaluate(function(){
        var table_rows = __utils__.getElementsByXpath("//table[@id='my_table']/tr[not(@id='header')]");

        return table_rows.map(function(tr){
            return {
                a: tr.children[1].textContent,
                b: tr.children[3].textContent
            };
        });
    });
    this.echo(JSON.stringify(info, undefined, 4));
});
您可以使用所有方法来遍历DOM,如
子对象
查询选择器()
文档.evaluate()

1请同时阅读以下内容