猿问

Cheerio,如何将其提取到 json 中?

我有一个类似这样的 html 页面,其中包含 2 个产品和基于条件的不同版本,在这种情况下,1 个产品有 4 个条件


<div class="listing_item">

<ul class="listedItem listedItem--searched">

    <li>

        <a href="itemproduct.html">

            <div class="itemImg">

                <img class="lazy" alt="Item name 1" src="some.jpg" data-original="some.jpg" style="display: block;">

                </div>

                <div class="icon">

                </div>

            </a>

            <a href="item1productdetails.html" class="itemName">Item name 1</a>

            <div class="tableHere product">

                <div class="sameSearchButton">

                    <a href="etctectect">

            Search item here

                    </a>

                </div>

                <div class="row not-first ng-star-inserted">

                    <div class="col-xs-1 ng-star-inserted">

                        <strong>

                                        Condition 1

                        </strong>

                    </div>

                    <div class="col-xs-4 ng-star-inserted">10 USD</div>

                    <div class="col-xs-2">stock 10</div>

                    <div class="col-xs-2 ng-star-inserted">

                        <div class="asSpinner">

                            <select id="quantity_511377" class="form-control product-listing__qty-to-buy" name="quantityToBuy">

                                <option value="1">1</option>

                                <option value="2">2</option>

                                <option value="3">3</option>

                                <option value="4">4</option>

                                <option value="5">5</option>

                                <option value="6">6</option>

                                <option value="7">7</option>

                                <option value="8">8</option>

                            </select>

                        </div>

                    </div>

FFIVE
浏览 208回答 1
1回答

米琪卡哇伊

$('div[class="row not-first ng-star-inserted"]')加载所有div具有类项目row,not-first并ng-star-inserted在同一时间。错误在于您正在文档中搜索此类项目,而您没有缩小当前的搜索范围li,例如&nbsp; &nbsp; $('.listing_item ul li').each(function(i, elm) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;cardName = $(this).find('a[class=itemName]').text().trim();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$(this).find('div[class="row not-first ng-star-inserted"]').each(function(){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var obj = {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;condition: $(this).find('div[class="col-xs-1 ng-star-inserted"]').text().trim(),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;price: $(this).find('div[class="col-xs-4 ng-star-inserted"]').text().trim(),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;stock: $(this).find('div[class="col-xs-2"]').text().trim()&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;};&nbsp; &nbsp;});所以$ => $(this).find编辑要构建问题中的 JSON,您可以执行以下操作:&nbsp; &nbsp; var myJSON = {};&nbsp; &nbsp; $('.listing_item ul li').each(function(i, elm) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;cardName = $(this).find('a[class=itemName]').text().trim();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;myJSON[cardName] = [];&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$(this).find('div[class="row not-first ng-star-inserted"]').each(function(){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var obj = {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;condition: $(this).find('div[class="col-xs-1 ng-star-inserted"]').text().trim(),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;price: $(this).find('div[class="col-xs-4 ng-star-inserted"]').text().trim(),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;stock: $(this).find('div[class="col-xs-2"]').text().trim()&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;};&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;myJSON[cardName].push(obj);&nbsp; &nbsp;});未测试。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答