Node.js Кукольник и Cheerio Div Соскоб таблицы - PullRequest
0 голосов
/ 08 марта 2019

Я работал над шаблоном node.js, используя puppeteer и cheerio, но у меня возникла проблема с извлечением некоторой информации из таблицы div. Мне нужно вытащить столы с фруктами и овощами, но не стол с мясом, и все 3 присутствуют не всегда.

<div class="specs__title">
	<h4>Fruit</h4>
</div>
<div class="specs__table">
	<div class="specs__group col-12 col-lg-6">
		<div class="col-6 specs__cell specs__cell--label">Apples</div>
		<div class="col-6 specs__cell">4lbs</div>
	</div>
	<div class="specs__group col-12 col-lg-6">
		<div class="col-6 specs__cell specs__cell--label">Grapes</div>
		<div class="col-6 specs__cell">3lbs</div>
	</div>
</div>
<div class="specs__title">
	<h4>Vegetables</h4>
</div>
<div class="specs__table">
	<div class="specs__group col-12 col-lg-6">
		<div class="col-6 specs__cell specs__cell--label">Carrots</div>
		<div class="col-6 specs__cell">7lbs</div>
	</div>
	<div class="specs__group col-12 col-lg-6">
		<div class="col-6 specs__cell specs__cell--label">Corn</div>
		<div class="col-6 specs__cell">5lbs</div>
	</div>
</div>
<div class="specs__title">
	<h4>Meat</h4>
</div>
<div class="specs__table">
	<div class="specs__group col-12 col-lg-6">
		<div class="col-6 specs__cell specs__cell--label">Turkey</div>
		<div class="col-6 specs__cell">2lbs</div>
	</div>
	<div class="specs__group col-12 col-lg-6">
		<div class="col-6 specs__cell specs__cell--label">Beef</div>
		<div class="col-6 specs__cell">1lb</div>
	</div>
</div>

Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 08 марта 2019

Я не уверен, что это лучший способ сделать это, но так я его заработал.

for (let i = 0; i < 3; i++) {
	if($('#specsContainer > div.specs__title > h4', html).eq(i).text() == "Fruits"){
		console.log($('#specsContainer > div.specs__table', html).eq(i).html());
	};
	if($('#specsContainer > div.specs__title > h4', html).eq(i).text() == "Vegetables"){
		console.log($('#specsContainer > div.specs__table', html).eq(i).html());
	};
};
0 голосов
/ 08 марта 2019

Это должно выглядеть примерно так: (не проверено)

$('h4:contains("Fruits"),h4:contains("Vegetables")').map((i, h4) => {
  return $(h4).parent().find('+ .specs__table').html()
}).get()
...