Хорошо, поэтому я пытаюсь очистить информацию от https://www.jamesqquick.com/blog. Вот мой функциональный код.
Здесь все отлично работает.
const axios = require('axios');
const cheerio = require('cheerio');
axios.get('https://www.jamesqquick.com/blog').then( res => {
const talks = [];
const $ = cheerio.load(res.data);
$('li.card').each( (index, element) => {
const title =
$(element)
.children()
.first()
.text();
const sildesLink = $(element)
.children('a')
.last()
.attr('href');
const date = $(element)
.children('small')
.last()
.text();
talks[index] = {title, sildesLink, date}
})
console.log(talks);
})
Я пытаюсь вычистить описания каждого поста из блога карточка - описание и post-tag . Вот HTML для карты, к которой я обращаюсь.
<li class="card">
<a href="/blog/react-router-in-five-minutes">
<h3 class="card--title">React Router in 5 Minutes</h3>
</a>
<small class="card--date">04/06/2020</small>
<div>
<p class="card--description">I use React all of the time and always have to look up how to setup React Router. In this post, I'll show you how to setup React Router in…</p>
<small>Tags:<!-- -->
<small class="post--tag">web-development</small>
<small class="post--tag">javascript</small>
<small class="post--tag"> react</small>
</small>
</div>
</li>
Как получить доступ к карточке - описание и пост-тегу . Вот текущий код того, как я это делаю.
$('.card--description').each( (index, element) => {
const desc = $(element)
.children()
.first()
.text();
test[index] = {desc}
})
Результаты этого:
[
{ desc: '' }, { desc: '' },
{ desc: '' }, { desc: '' },
{ desc: '' }, { desc: '' },
{ desc: '' }, { desc: '' },
{ desc: '' }, { desc: '' },
{ desc: '' }, { desc: '' },
{ desc: '' }, { desc: '' },
{ desc: '' }
]
Итак, он что-то подбирает. Любая помощь будет оценена. Желаемые результаты этого кода смогут отображать все дески.