Javascript 如何正确使用getElementByXpath和GetElementsByPath?
如何使用CasperJS获取表“td”值 HTML源代码如下所示:Javascript 如何正确使用getElementByXpath和GetElementsByPath?,javascript,html,web-scraping,casperjs,Javascript,Html,Web Scraping,Casperjs,如何使用CasperJS获取表“td”值 HTML源代码如下所示: 某物的名称 头像 某物的名称 某物的名称 某物的名称 某物的价值 某物的价值 某物的价值 某物的价值 某物的价值 某物的价值 某物的价值 某物的价值 某物的价值 某物的价值 某物的价值 某物的价值 某物的价值 某物的价值 某物的价值 我想使用CasperJS获取表值。首先,我需要选择表中的行;然后我想得到“td”值。我怎样才能解决这个问题 我尝试了很多方法,但都不管用。我的解决方案与下面的类似。重要的是,首先选择“表_行”;
某物的名称
头像
某物的名称
某物的名称
某物的名称
某物的价值
某物的价值
某物的价值
某物的价值
某物的价值
某物的价值
某物的价值
某物的价值
某物的价值
某物的价值
某物的价值
某物的价值
某物的价值
某物的价值
某物的价值
我想使用CasperJS获取表值。首先,我需要选择表中的行;然后我想得到“td”值。我怎样才能解决这个问题
我尝试了很多方法,但都不管用。我的解决方案与下面的类似。重要的是,首先选择“表_行”;然后在for循环中选择这是td值
var table_rows=casper.getElementsByXpath(//table[@id='my_table']]/tr[not(@id='header')”;
对于(变量i=0;iCasperJS有两个上下文。您只能直接从页面上下文访问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请同时阅读以下内容