如何使用 casperjs 获取标签中的文本?
How to get a text in tag with casperjs?
我有一个 html-代码:
<div class="div_table_body">
<table class="part_listing">
<tr><td>sometext</td></tr>
<tr><td>sometext2</td></tr>
...
</table>
</div>
我尝试使用 casperjs 在标签 'td' 中获取文本:
function getLinks() {
var tr = document.querySelectorAll('div.div_table_body table.part_listing tr');
return Array.prototype.map.call(tr, function (e) {
return e.getHTML('td', true);
});
}
casper.then(function () {
links = this.evaluate(getLinks);
console.log('links ' +links);
});
但是我得到了一个NULL,请帮助理解这段代码中的错误?
这将更新 getLinks
以创建和 return 包含 td 的 outerHTML 字符串的区域。您不能在 getLinks
中使用 getHTML()
。 Casper 评估 getLinks
并在页面上执行它,因此它需要是 vanilla JS。
function getLinks() {
var tr = document.querySelectorAll('div.div_table_body table.part_listing tr');
return Array.prototype.map.call(tr, function (e) {
return e.querySelector('td').outerHTML;
});
}
仅使用 Casper 获取:
casper.start('http://www.example.com', function() {
this.getHTML('div.div_table_body table.part_listing tr > td', true);
});
我将你的 selector 从 tr
更新为 select td
。
如何使用 CasperJS 轻松获取文本内容:
CasperJS 允许您访问 textContent
of elements using getElementsInfo()
及其相应的 .text
属性:
简答:
var td = this.getElementsInfo('.div_table_body > .part_listing > tbody > tr > td');
this.echo(td[0].text); // Result: sometext
完整答案:
var casper = require('casper').create();
casper.start('https://www.example.com/', function () {
var td = this.getElementsInfo('.div_table_body > .part_listing > tbody > tr > td');
var td_array = [].map.call(td, function (element) {
return element.text.trim();
});
this.echo(td_array); // Result: sometext,sometext2
});
casper.run();
这将 return 一个包含 [sometext, sometext2]
.
的数组
我有一个 html-代码:
<div class="div_table_body">
<table class="part_listing">
<tr><td>sometext</td></tr>
<tr><td>sometext2</td></tr>
...
</table>
</div>
我尝试使用 casperjs 在标签 'td' 中获取文本:
function getLinks() {
var tr = document.querySelectorAll('div.div_table_body table.part_listing tr');
return Array.prototype.map.call(tr, function (e) {
return e.getHTML('td', true);
});
}
casper.then(function () {
links = this.evaluate(getLinks);
console.log('links ' +links);
});
但是我得到了一个NULL,请帮助理解这段代码中的错误?
这将更新 getLinks
以创建和 return 包含 td 的 outerHTML 字符串的区域。您不能在 getLinks
中使用 getHTML()
。 Casper 评估 getLinks
并在页面上执行它,因此它需要是 vanilla JS。
function getLinks() {
var tr = document.querySelectorAll('div.div_table_body table.part_listing tr');
return Array.prototype.map.call(tr, function (e) {
return e.querySelector('td').outerHTML;
});
}
仅使用 Casper 获取:
casper.start('http://www.example.com', function() {
this.getHTML('div.div_table_body table.part_listing tr > td', true);
});
我将你的 selector 从 tr
更新为 select td
。
如何使用 CasperJS 轻松获取文本内容:
CasperJS 允许您访问 textContent
of elements using getElementsInfo()
及其相应的 .text
属性:
简答:
var td = this.getElementsInfo('.div_table_body > .part_listing > tbody > tr > td');
this.echo(td[0].text); // Result: sometext
完整答案:
var casper = require('casper').create();
casper.start('https://www.example.com/', function () {
var td = this.getElementsInfo('.div_table_body > .part_listing > tbody > tr > td');
var td_array = [].map.call(td, function (element) {
return element.text.trim();
});
this.echo(td_array); // Result: sometext,sometext2
});
casper.run();
这将 return 一个包含 [sometext, sometext2]
.