मैं एक साधारण वेब स्क्रैपर बनाने के लिए नोड, एक्सप्रेस, चीयरियो और एक्सियोस का उपयोग कर रहा हूं। इस उदाहरण में, axios में डेटा है लेकिन चीयरियो के साथ डेटा लोड करने के बाद मुझे यह त्रुटि मिली है:

(node:14056) UnhandledPromiseRejectionWarning: TypeError: content.forEach is not a function

स्क्रैपर कोड:

app.get('/users', (req, res) => {
  axios('https://fake.com/users')
  .then(response => {
    let $ = cheerio.load(response);
    let users = $('.users .user');
    console.log(cards);
  });
});

लेकिन यह त्रुटि क्यों है? क्योंकि मैं तब ब्लॉक में वादे को हल करने के बाद डेटा पास कर रहा हूं ??

2
M E 16 फरवरी 2021, 12:35
प्रत्येक लूप के लिए कहाँ है?
 – 
Sarthak Bhagwat
16 फरवरी 2021, 13:45

1 उत्तर

सबसे बढ़िया उत्तर

क्योंकि आपने response का उपयोग किया है और आपको इसके बजाय response.data का उपयोग करना होगा:

let $ = cheerio.load(response.data);

वास्तव में response सर्वर से प्राप्त सभी प्रतिक्रिया देता है, लेकिन response.data केवल वही डेटा देता है जो API से प्राप्त हुआ है।

1
Mohammad Esmaeilzadeh 23 फरवरी 2021, 09:36