Web scraping 使用cheerio标记br后的目标文本

Web scraping 使用cheerio标记br后的目标文本,web-scraping,axios,cheerio,Web Scraping,Axios,Cheerio,我正在练习使用cheerio创建一个API。我从这个相当复杂的网站上抓取: 我正在尝试将这些标记之后的文本定位在此元素中的锚定标记中: <td class="viCellBg1 cellTextNorm cellBorderL1 center_text nowrap" width="56"> <a class="cellTextNorm" href="/nfl/odds/las-vegas/line-movement/packers-@-

我正在练习使用cheerio创建一个API。我从这个相当复杂的网站上抓取:

我正在尝试将这些

标记之后的文本定位在此
元素中的锚定标记中:

<td class="viCellBg1 cellTextNorm cellBorderL1 center_text nowrap" 
      width="56">
   <a class="cellTextNorm" href="/nfl/odds/las-vegas/line-movement/packers-@- 
       bears.cfm/date/9-05-19/time/2020#BT" target="_blank">
        &nbsp;<br>46u-10<br>-3½&nbsp;-10
   </a>
 </td>
您可以看到,我能够将此框中的所有文本输出为newObj.locks值。我试图使用类似于下一行的东西,在下一行中,我以td元素为目标,循环并将每一行分解为它自己的newObj属性,例如newObj.oddsLine1和newObj.oddsLine2


希望这是有道理的。非常感谢您的帮助

不能使用cheerio选择文本节点,需要使用js dom属性/函数:

$('td a br')[0].nextSibling.nodeValue

注$(css)[0]将作为js对象(而不是cheerio对象)为您提供第一个元素。

谢谢,它肯定针对我要查找的每一行。我的下一个问题是,假设我只想针对该页面“VI共识”栏中的值?我想做一个循环,因为不管行的数量多少,行的位置都是一致的,但我也认为这似乎太复杂了,而且在这方面有更聪明的大脑。看起来像
$('.cellTextNorm:nth child(3)')。map((I,el)=>$(el.text()).get()
我如何像解析text()一样解析节点值?nodeValue是一个字符串。我想你可以用正则表达式解析它。
$('td a br')[0].nextSibling.nodeValue