I'm using node, express, cheerio and axios to create a simple web scraper. In this example, axios has data but after loading data with cheerio I've this error:
(node:14056) UnhandledPromiseRejectionWarning: TypeError: content.forEach is not a function
Scraper code:
app.get('/users', (req, res) => { axios('https://fake.com/users').then(response => { let $ = cheerio.load(response); let users = $('.users.user'); console.log(cards); }); });
But why has this error? because I'm passing data after resolve the promise in then block??
Because you used response
and you have to use response.data
instead:
let $ = cheerio.load(response.data);
Actually response
returns all response has received from server, but response.data
returns only data that has received from API.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.