使用 cheerio 从 html 元素中提取文本
extracting text from html elements with cheerio
使用 cheerio,$
被定义为 cheerio 对象,我试图从一些在 html 中具有 class forceWordWrap
的元素中获取文本。以下 cheerio 选择器没有返回任何内容。我究竟做错了什么?谢谢
const text = $("td[class='forceWordWrap']");
const date = text.eq(0).text();
const title = text.eq(1).text();
const description = text.eq(2).text();
<p/>
<form name="his" method="post" action="/a/b.axp">
<input type="hidden" name="action" value="accept"/>
<table width="100%" border="0" cellpadding="2" cellspacing="0">
<tr class="rowHeading">
<td width="14%">
<div align="left" style="white-space:nowrap">
going home
</div>
</td>
<td width="86%">
<div align="left">
say bye.
</div>
</td>
</tr>
<tr class="rowLight">
<td class="boldBodyText forceWordWrap">
<input type="hidden" name="king" value="Tut"/>
the kings
</td>
<td class="boldBodyText forceWordWrap">
Reminder – Please see the king.
</td>
</tr>
<tr class="rowLight">
<td style="white-space:normal"> </td>
<td class="bodyText forceWordWrap">
YOu got to do this.
</td>
</tr>
</table>
Use $("td.forceWordWrap");
selector as Attribute Equals Selector [name=”value”]
selects elements that have the specified attribute with a value exactly equal to a certain value.
const text = $("td.forceWordWrap");
const date = text.eq(0).text();
const title = text.eq(1).text();
const description = text.eq(2).text();
console.log(date);
console.log(title);
console.log(description);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<form name="his" method="post" action="/a/b.axp">
<input type="hidden" name="action" value="accept" />
<table width="100%" border="0" cellpadding="2" cellspacing="0">
<tr class="rowHeading">
<td width="14%">
<div align="left" style="white-space:nowrap">
going home
</div>
</td>
<td width="86%">
<div align="left">
say bye.
</div>
</td>
</tr>
<tr class="rowLight">
<td class="boldBodyText forceWordWrap">
<input type="hidden" name="king" value="Tut" />the kings
</td>
<td class="boldBodyText forceWordWrap">
Reminder – Please see the king.
</td>
</tr>
<tr class="rowLight">
<td style="white-space:normal"> </td>
<td class="bodyText forceWordWrap">YOu got to do this.
</td>
</tr>
</table>
使用 cheerio,$
被定义为 cheerio 对象,我试图从一些在 html 中具有 class forceWordWrap
的元素中获取文本。以下 cheerio 选择器没有返回任何内容。我究竟做错了什么?谢谢
const text = $("td[class='forceWordWrap']");
const date = text.eq(0).text();
const title = text.eq(1).text();
const description = text.eq(2).text();
<p/>
<form name="his" method="post" action="/a/b.axp">
<input type="hidden" name="action" value="accept"/>
<table width="100%" border="0" cellpadding="2" cellspacing="0">
<tr class="rowHeading">
<td width="14%">
<div align="left" style="white-space:nowrap">
going home
</div>
</td>
<td width="86%">
<div align="left">
say bye.
</div>
</td>
</tr>
<tr class="rowLight">
<td class="boldBodyText forceWordWrap">
<input type="hidden" name="king" value="Tut"/>
the kings
</td>
<td class="boldBodyText forceWordWrap">
Reminder – Please see the king.
</td>
</tr>
<tr class="rowLight">
<td style="white-space:normal"> </td>
<td class="bodyText forceWordWrap">
YOu got to do this.
</td>
</tr>
</table>
Use
$("td.forceWordWrap");
selector asAttribute Equals Selector [name=”value”]
selects elements that have the specified attribute with a value exactly equal to a certain value.
const text = $("td.forceWordWrap");
const date = text.eq(0).text();
const title = text.eq(1).text();
const description = text.eq(2).text();
console.log(date);
console.log(title);
console.log(description);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<form name="his" method="post" action="/a/b.axp">
<input type="hidden" name="action" value="accept" />
<table width="100%" border="0" cellpadding="2" cellspacing="0">
<tr class="rowHeading">
<td width="14%">
<div align="left" style="white-space:nowrap">
going home
</div>
</td>
<td width="86%">
<div align="left">
say bye.
</div>
</td>
</tr>
<tr class="rowLight">
<td class="boldBodyText forceWordWrap">
<input type="hidden" name="king" value="Tut" />the kings
</td>
<td class="boldBodyText forceWordWrap">
Reminder – Please see the king.
</td>
</tr>
<tr class="rowLight">
<td style="white-space:normal"> </td>
<td class="bodyText forceWordWrap">YOu got to do this.
</td>
</tr>
</table>