1

I am getting an array of empty strings while scraping HTML elements using Cheerio.

I am providing Cheerio with DOM Paths to existing HTML elements. These DOM Paths return HTML elements with document.querySelector or jQuery in the browser.

Cheerio is returning an initialize object instead of the expected HTML Element. Chaining the .text() method returns "".

Example:

let domArr: [ 'html>body>div:nth-child(8).content>div:nth-child(4).spacer>div#siteTable.sitetable.linklisting>div:nth-child(1)#thing_t3_6smcs6.thing.id-t3_6smcs6.odd.link>div:nth-child(5).entry.unvoted>div:nth-child(1).top-matter>p:nth-child(1).title>a.title.may-blank', 'html>body>div:nth-child(8).content>div:nth-child(4).spacer>div#siteTable.sitetable.linklisting>div:nth-child(3)#thing_t3_6slbyx.thing.id-t3_6slbyx.even.gilded.link>div:nth-child(5).entry.unvoted>div.top-matter>p:nth-child(1).title>a.title.may-blank.outbound' ]

let textArr = [];
domArr.forEach((element) => {
   elementText = $(element).text();
   textArr.push(elementText);
   });


console.log(textArr) // ["", ""]
Reign
  • 65
  • 1
  • 6

0 Answers0