Сканирование веб-сайта: ответы почтальона и браузера разные - PullRequest
0 голосов
/ 05 августа 2020

Я хочу просканировать сайт https://www.ups.com/de/de/shipping/surcharges/fuel-surcharges.page. Там компания выставляет все топливные надбавки, которые они добавляют к сумме счетов. Мне нужна информация, чтобы правильно рассчитать некоторые затраты. К сожалению, в настоящее время UPS не желает регулярно присылать мне данные в удобочитаемом формате. Таким образом, я подумал о сканировании веб-сайта и получении информации самостоятельно.

К сожалению, при использовании почтальона или моего инструмента для сканирования rcrawler запрос GET на сайт скрывает таблицы данных. Как я могу обмануть сайт, чтобы он возвращал все данные, как при использовании браузера chrome?

Например, стандартная таблица затрат уровня в почтальоне выглядит так (содержит только заголовки столбцов, но не values):

<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>

Сравнение этого результата с результатом браузера показывает проблему.

1 Ответ

2 голосов
/ 07 августа 2020

Вы просто наивно загружаете исходный код веб-сайта.

Если вы откроете инструменты разработчика в своем браузере (обычно F12 ), откроете вкладку «Сеть» и перезагрузите страницу, вы увидите все сделанные запросы.

Вы заметите несколько javascript файлов, и где-то в этом списке вы также увидите файл с именем de.json. Если вы посмотрите на форму ответа на этот запрос, вы увидите, что все ставки отображаются как json.

Один из файлов javascript анализирует это и отображает эти данные в таблице в вашем браузере. У Почтальона нет переводчика javascript; на самом деле это так, но он не используется так же, как веб-браузер. Таким образом, запрос всей страницы не покажет вам эти данные.

Однако, если вы ПОЛУЧИТЕ https://www.ups.com/assets/resources/fuel-surcharge/de.json, вы получите данные, которые вам нужны.

...