readFile.ReadFile.Selector后无法提取链接文本。选择器在 Chrome 控制台中工作

问题描述 投票:0回答:1

我正试图提取超链接文本。在google chrome控制台中,如果我把我的选择器放进去,我得到了想要的结果,--一个15个链接文本的列表。

当我用同样的选择器运行我的代码时,el.text在console.log中是未定义的,但索引却被记录在console.log中。

在最后,整个html被记录到控制台。

我是一个新手。

const request = require('request-promise');
const cheerio = require('cheerio');

const fs = require('fs');
const { JSDOM } = require("jsdom");
const { window } = new JSDOM("");
const filePath = './data/hb2019.html';

fs.readFile('./data/hb2019.html', 'utf8', (err, data) => {

    if (err) {
        console.log(err);
        return;
    }

    var $ = cheerio.load(data);

    $('#tableComparableSales tbody .salesReportSortLink').each(function (index, el) {
        console.log(el.text);
        console.log(index);
    });

    //console.log($.html());

});

<table ng-show="comparableSales.showMinimumInformation"
                                    class="table table-condensed table-striped" id="tableComparableSales">
                                    <thead>
                                        <tr>
                                            <th class="tableHeader" colspan="15">
                                                Sales Information
                                                <span id="sales_info_header"
                                                    ng-click="comparableSales.toggleSalesInformation($event)"
                                                    class="glyphicon glyphicon-minus-sign" style="
                              float: left;
                              padding-right: 30px;
                              padding-top: 8px;
                            " title="Minimize Sales Information"></span>
                                            </th>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <tr ng-show="true" class="">
                                            <td colspan="14" style="background-color: white !important;">
                                                <div class="table-message" style="
                              color: red;
                              font-weight: bold;
                              background-color: white;
                            ">
                                                    <p style="white-space: pre;" class="ng-binding"></p>
                                                </div>
                                            </td>
                                        </tr>
                                        <tr ng-show="true" class="">
                                            <td colspan="14" style="background-color: white !important;">
                                                <div class="table-message"
                                                    style="font-weight: bold; font-size: medium;">
                                                    <div class="ng-binding">
                                                        Sale Year 2019: &nbsp;&nbsp; 28 sales found 100
                                                        Ft. from 3370 NE 190 ST UNIT:2907
                                                    </div>
                                                </div>
                                            </td>
                                        </tr>
                                        <tr class="header-row" ng-show="comparableSales.salesInformationArr.length">
                                            <td class="text-center">
                                                <a class="salesReportSortLink"
                                                    ng-click="reverse = predicate == &#39;salesNumber&#39; &amp;&amp; !reverse; predicate = &#39;salesNumber&#39;;comparableSales.currentPage=0">#</a>
                                            </td>
                                            <td class="text-center" style="width: 105px;">
                                                <a class="salesReportSortLink"
                                                    ng-click="reverse = predicate == &#39;folioNumber&#39; &amp;&amp; !reverse; predicate = &#39;folioNumber&#39;;comparableSales.currentPage=0">Folio</a>
                                            </td>
                                            <td class="text-center">
                                                <a class="salesReportSortLink"
                                                    ng-click="reverse = predicate == &#39;siteAddress&#39; &amp;&amp; !reverse; predicate = &#39;siteAddress&#39;;comparableSales.currentPage=0">Address</a>
                                            </td>
                                            <td class="text-center">
                                                <a class="salesReportSortLink"
                                                    ng-click="reverse = predicate == &#39;DORDescriptionCurrent&#39; &amp;&amp; !reverse; predicate = &#39;DORDescriptionCurrent&#39;;comparableSales.currentPage=0">Property
                                                    Use</a>
                                            </td>
                                            <!--<td class="text-center"><a class="salesReportSortLink" ng-click="reverse1 = predicate1 == 'PrimaryZoneDescription' && !reverse1; predicate1 = 'PrimaryZoneDescription'">PA Zoning</a></td>-->
                                            <td class="text-center">
                                                <a class="salesReportSortLink"
                                                    ng-click="reverse = predicate == &#39;primaryZoneDescription&#39; &amp;&amp; !reverse; predicate = &#39;primaryZoneDescription&#39;;comparableSales.currentPage=0">PA
                                                    Zoning</a>
                                            </td>
                                            <td class="text-center">
                                                <a class="salesReportSortLink"
                                                    ng-click="reverse = predicate == &#39;yearBuilt&#39; &amp;&amp; !reverse; predicate = &#39;yearBuilt&#39;;comparableSales.currentPage=0">Year
                                                    Built</a>
                                            </td>
                                            <td class="text-center">
                                                <a class="salesReportSortLink"
                                                    ng-click="reverse = predicate == &#39;buildingGrossArea&#39; &amp;&amp; !reverse; predicate = &#39;buildingGrossArea&#39;;comparableSales.currentPage=0">Actual
                                                    Area</a>
                                            </td>
                                            <td class="text-center">
                                                <a class="salesReportSortLink"
                                                    ng-click="reverse = predicate == &#39;buildingHeatedArea&#39; &amp;&amp; !reverse; predicate = &#39;buildingHeatedArea&#39;;comparableSales.currentPage=0">Living
                                                    Area</a>
                                            </td>
                                            <td class="text-center">
                                                <a class="salesReportSortLink"
                                                    ng-click="reverse = predicate == &#39;buildingEffectiveArea&#39; &amp;&amp; !reverse; predicate = &#39;buildingEffectiveArea&#39;;comparableSales.currentPage=0">Adj
                                                    Area</a>
                                            </td>
                                            <td class="text-center">
                                                <a class="salesReportSortLink"
                                                    ng-click="reverse = predicate == &#39;lotSize&#39; &amp;&amp; !reverse; predicate = &#39;lotSize&#39;;comparableSales.currentPage=0">Lot
                                                    Size</a>
                                            </td>
                                            <td class="text-center">
                                                <a class="salesReportSortLink"
                                                    ng-click="reverse = predicate == &#39;bedroomCount&#39; &amp;&amp; !reverse; predicate = &#39;bedroomCount&#39;;comparableSales.currentPage=0">#Beds</a>
                                            </td>
                                            <td class="text-center">
                                                <a class="salesReportSortLink"
                                                    ng-click="reverse = predicate == &#39;bathroomCount&#39; &amp;&amp; !reverse; predicate = &#39;bathroomCount&#39;;comparableSales.currentPage=0">#Baths</a>
                                            </td>
                                            <td class="text-center">
                                                <a class="salesReportSortLink"
                                                    ng-click="reverse = predicate == &#39;dateOfSale&#39; &amp;&amp; !reverse; predicate = &#39;dateOfSale&#39;;comparableSales.currentPage=0">Sale
                                                    Month</a>
                                            </td>
                                            <td class="text-center">
                                                <a class="salesReportSortLink"
                                                    ng-click="reverse = predicate == &#39;salePrice&#39; &amp;&amp; !reverse; predicate = &#39;salePrice&#39;;comparableSales.currentPage=0">Amount</a>
                                            </td>
                                            <td class="text-center">
                                                <a class="salesReportSortLink"
                                                    ng-click="reverse = predicate == &#39;qualificationDescription&#39; &amp;&amp; !reverse; predicate = &#39;qualificationDescription&#39;;comparableSales.currentPage=0">Qualification
                                                    Description</a>
                                            </td>
                                        </tr>
                                        <!-- ngRepeat: sale in comparableSales.salesInformationArr | orderBy : predicate : reverse | startFrom:comparableSales.currentPage*comparableSales.pageSize | limitTo:comparableSales.pageSize -->
                                       
javascript node.js cheerio
1个回答
0
投票

应该是console.log(el.textContent)。

notconsole.log(el.text);

© www.soinside.com 2019 - 2024. All rights reserved.