Как сделать так, чтобы мои данные отображались в файле CSV в Node.js? - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь сделать так, чтобы данные, которые генерирует эта функция, появлялись в моем CSV-файле. Тем не менее, когда он создает файл CSV, нет данных, и это пустой документ CSV. Любые предложения?

const fs = require('fs');

const csv = await page.$$eval('.product_desc_txt', function(products){

 // Iterate over product descriptions
    let csvLines = products.map(function(product){

    // Inside of each product find product SKU and its price
        let productId = product.querySelector("div.product_desc_txt > div.body-copy.custom-body-copy").innerText.trim();
        let productPrice = product.querySelector("span[data-wishlist-linkfee]").innerText.trim();

    // Format them as a csv line
        return `${productId};${productPrice}`;
    });
     // Join all lines into one file
     return csvLines.join("\n");
     });
        fs.writeFileSync("test.csv", csv);

});

Это код из источника, он в основном повторяется снова и снова с различными номерами предметов и ценами. Мне просто нужен номер товара и цена. зацикленный

<div class="list-tbl">
            <div class="row" data-body-header>
                <div class="col-xs-12">
                    <div class="split-line split-line-header-gap">
                        <div class="row">
                            <div class="col-xl-1 col-lg-1 col-md-1 col-sm-1 col-xs-2 body-copy">
                                   <div class="style-check">
                                        <input type="checkbox" id = "selectall" name="selectall" value="279114616" class="selectall">
                                        <label for="selectall">
                                            <span>All</span>
                                        </label>
                                   </div>
                             </div>
                             <div class="col-xl-1 col-lg-1 col-md-2 col-sm-3 col-xs-4 body-copy"></div>
                             <div class="col-xl-3 col-lg-3 col-md-3 col-sm-4 col-xs-6 body-copy">
                                <span class="hidden visible-lg  visible-xl">Item</span>
                             </div>
                             <div class="col-xl-2 col-lg-2 text-right body-copy hidden visible-xl">
                                Price
                             </div>
                             <div class="col-xl-1 body-copy hidden visible-xl"></div>
                             <div class="col-xl-1 col-lg-1 col-md-2 body-copy hidden visible-xl visible-lg">
                                Quantity
                             </div>
                             <div class="col-xl-3 col-lg-4 col-md-4 body-copy hidden visible-xl visible-lg visible-md"></div>
                        </div>
                    </div>
                 </div>
            </div>
            <input type="hidden" id="isBDAppVar"  value="BD" />

                        <input type="hidden" class="orderItem-2000423036" value="237459854"/>

                <div class="row item-row" id = "2000423036" data-body-row>
                     <div class="col-xs-12">
                     <div class="split-line split-line-gap">
                         <div class="row">

                                    <div class="col-xl-1 col-lg-1 col-md-1 col-sm-1 col-xs-2">

                                          <div class="style-check marg_chk">
                                                <input type="checkbox" class="checkbox" name="select" id ="select_0" value="0">
                                               <label for="select_0">
                                                <span class="hide">
                                                Select&nbsp;
                                                Item
                                                </span>
                                               </label>
                                            </div>

                                    </div>

                                    <div class="col-xl-1 col-lg-1 col-md-2 col-sm-3 col-xs-4">
                                        <div class="product-img-holder">

                                                    <img class="img-responsive prod-image-coming-soon" title="Pringles Snack Pack Potato Crisps, Original, 0.67 oz, 60 ct"
                                                        src="https://images.costcobusinessdelivery.com/ImageDelivery/imageService?profileId=12028466&imageId=1055688__1&recipeName=350" 
                                                        onerror="this.onerror='';this.src='/wcsstore/CostcoGLOBALSAS/images/prod-image-coming-soon.svg';this.alt='Product Image Coming Soon'" 
                                                         alt="Shoping List Product Image" />

                                        </div>
                                    </div>
                                    <!-- price + linkfee based on region -->
<div class="col-xl-3 col-lg-3 col-md-6 col-sm-8 col-xs-6">
    <div class="product_desc_txt">

        <a href=" https://www.costcobusinessdelivery.com/.product.1055688.html " class="body-copy-link">
            Pringles Snack Pack Potato Crisps, Original, 0.67 oz, 60 ct
        </a>
        <div class="body-copy custom-body-copy">
           Item&nbsp;1055688
        </div>

        <div class="margin_tp_10"></div>

        <div class="body-copy hidden visible-md visible-sm visible-xs visible-lg">

            <span  data-wishlist-linkfee="false" > $15.89</span>

        </div>

    </div>
</div>
<div class="col-xl-2 col-lg-2 body-copy text-right hidden visible-xl ">

    <span  data-wishlist-linkfee="false" > $15.89</span>


</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...