0

我想抓取网站https://www.ups.com/de/de/shipping/surcharges/fuel-surcharges.page。在那里,该公司将他们添加到发票金额中的所有燃油附加费提供给他们。我需要这些信息来正确计算一些成本。不幸的是,UPS 目前不愿意定期向我发送可读格式的数据。因此,我想到了自己爬网站并获取信息。

不幸的是,当使用邮递员或我的爬虫工具 rcrawler 时,对站点的 GET 请求会隐藏数据表。我如何才能像使用 chrome 浏览器一样欺骗网站返回所有数据?

例如,postman 中的标准层成本表如下所示(仅包含列的标题,但没有值):

<div class="ups-contentBlock_wrap clearfix">
    <p>Der Standard Service Treibstoffzuschlag gilt f&uuml;r
        alle UPS Standard Sendungen. Die &Auml;nderungen des
        auf den n&auml;chsten Cent gerundeten Zuschlages
        werden am Montag jeder Woche wirksam und basieren
        auf den von der Generaldirektion der
        Europ&auml;ischen Kommission (ECDG) festgesetzten
        Verbraucherpreisen f&uuml;r Dieselkraftstoffe,
        einschliesslich der Z&ouml;lle und Steuern zweier
        Vorwochen. Der Zuschlag f&uuml;r die Woche vom 6.
        Februar 2017 basiert auf dem Dieselkraftstoffpreis
        f&uuml;r die Woche vom 23. Januar 2017.
        W&ouml;chentliche Aktualisierungen werden von der
        Generaldirektion Energie der Europ&auml;ischen
        Kommission (ECDG) f&uuml;r Energie und Verkehr im
        &Ouml;lbericht ver&ouml;ffentlicht.</p>
    <p>Der Treibstoffzuschlag f&uuml;r den UPS
        Standard-Service basiert auf den Angaben in der
        folgenden Tabelle:</p>
    <div class="ups-table fuel-surcharge">
        <table id="DieselFuelPriceStandardFuelSurcharge">
            <thead>
                <tr>
                    <th colspan="3">Dieseltreibstoffpreis
                        (EUR pro 1.000 Liter)</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <th>
                        <p>Mindestens</p>
                    </th>
                    <th>
                        <p>Aber weniger als</p>
                    </th>
                    <th>
                        <p>Zuschlag</p>
                    </th>
                </tr>
            </tbody>
        </table>
    </div>
</div>
<div class="ups-contentBlock_wrap clearfix">
    <p>Die H&ouml;he des Treibstoffzuschlags kann sich ohne
        vorhergehende Ank&uuml;ndigung &auml;ndern. Wenn der
        Treibstoffzuschlag &uuml;ber 14,50% ansteigt oder es
        zu &Auml;nderungen der Grenzwerte kommt, wird die
        obenstehende &Uuml;bersicht aktualisiert. Ungeachtet
        der durch die ECDG genannten durchschnittlichen
        Treibstoffpreise oder der obenstehenden
        &Uuml;bersicht werden die aktuellen oben
        ver&ouml;ffentlichen prozentualen Anteile des
        Treibstoffzuschlages f&uuml;r die festgelegten
        Zeitr&auml;ume ber&uuml;cksichtigt.</p>
</div>

将其与浏览器结果进行比较显示了问题。

4

1 回答 1

2

您只是天真地下载网站源代码。

如果您在浏览器中打开开发者工具(通常是F12)并打开网络选项卡,然后重新加载页面,您将看到所有发出的请求。

您会注意到几个 javascript 文件,并且在该列表的某处您还会看到一个名为de.json. 如果您查看该请求的响应表单,您将看到所有显示为 json 的费率。

其中一个 javascript 文件对其进行解析并在您的浏览器中的表格中显示此数据。Postman 没有 javascript 解释器;实际上确实如此,但它与网络浏览器的使用方式不同。因此,请求整个页面不会向您显示此数据。

但是,如果您获取https://www.ups.com/assets/resources/fuel-surcharge/de.json,您将获得您想要的数据。

于 2020-08-07T15:43:46.403 回答