我可以阻止 casper.fetchText 自动删除 <br> 吗?
Can I stop casper.fetchText from removing <br> automatically?
casper.fetchText
似乎自动删除了提取文本中的 <br>
。
例如如果文本是 abc<br>de
,那么 casper.fetchText
将 return abcde
而不是 abc<br>de
.
有什么方法可以保持 abc<br>de
吗?
保留 <br>
的唯一方法是检索元素的表示形式 HTML。
有几种方法。 casper.fetchText()
拼接所有匹配元素的文本内容。这也正是 element.textContent
所做的,但仅针对一个元素。
您可以使用 casper.getHTML()
检索单个元素的 element.innerHTML
:
var content = casper.getHTML(selector);
如果您想要与 fetchText
相同的行为,即连接所有元素的值,那么您需要自己这样做:
var contents = casper.getElementsInfo(selector).map(function(e){
return e.html;
}).join("\n");
casper.getElementsInfo()
为每个元素提供 html
属性。 map
创建一个仅包含 html
字符串的数组,而 join
从中创建一个字符串。
casper.fetchText
似乎自动删除了提取文本中的 <br>
。
例如如果文本是 abc<br>de
,那么 casper.fetchText
将 return abcde
而不是 abc<br>de
.
有什么方法可以保持 abc<br>de
吗?
保留 <br>
的唯一方法是检索元素的表示形式 HTML。
有几种方法。 casper.fetchText()
拼接所有匹配元素的文本内容。这也正是 element.textContent
所做的,但仅针对一个元素。
您可以使用 casper.getHTML()
检索单个元素的 element.innerHTML
:
var content = casper.getHTML(selector);
如果您想要与 fetchText
相同的行为,即连接所有元素的值,那么您需要自己这样做:
var contents = casper.getElementsInfo(selector).map(function(e){
return e.html;
}).join("\n");
casper.getElementsInfo()
为每个元素提供 html
属性。 map
创建一个仅包含 html
字符串的数组,而 join
从中创建一个字符串。