网站爬取:邮递员和浏览器的响应不同
Website crawling: responses are different for postman and browser
我想抓取网站 https://www.ups.com/de/de/shipping/surcharges/fuel-surcharges.page。在那里,该公司将他们添加到发票金额中的所有燃油附加费付清。我需要这些信息来正确计算一些成本。不幸的是,UPS 目前不愿意定期以可读格式向我发送数据。于是,我想到了自己爬网站获取信息。
不幸的是,当使用邮递员或我的爬虫工具rcrawler时,对站点的GET请求隐藏了数据tables。我如何才能像使用 chrome 浏览器时那样欺骗网站 return 所有数据?
例如,标准层费用 table 在邮递员中看起来像这样(仅包含列的标题但没有值):
<div class="ups-contentBlock_wrap clearfix">
<p>Der Standard Service Treibstoffzuschlag gilt für
alle UPS Standard Sendungen. Die Änderungen des
auf den nächsten Cent gerundeten Zuschlages
werden am Montag jeder Woche wirksam und basieren
auf den von der Generaldirektion der
Europäischen Kommission (ECDG) festgesetzten
Verbraucherpreisen für Dieselkraftstoffe,
einschliesslich der Zölle und Steuern zweier
Vorwochen. Der Zuschlag für die Woche vom 6.
Februar 2017 basiert auf dem Dieselkraftstoffpreis
für die Woche vom 23. Januar 2017.
Wöchentliche Aktualisierungen werden von der
Generaldirektion Energie der Europäischen
Kommission (ECDG) für Energie und Verkehr im
Ölbericht veröffentlicht.</p>
<p>Der Treibstoffzuschlag fü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öhe des Treibstoffzuschlags kann sich ohne
vorhergehende Ankündigung ändern. Wenn der
Treibstoffzuschlag über 14,50% ansteigt oder es
zu Änderungen der Grenzwerte kommt, wird die
obenstehende Übersicht aktualisiert. Ungeachtet
der durch die ECDG genannten durchschnittlichen
Treibstoffpreise oder der obenstehenden
Übersicht werden die aktuellen oben
veröffentlichen prozentualen Anteile des
Treibstoffzuschlages für die festgelegten
Zeiträume berücksichtigt.</p>
</div>
将此与浏览器结果进行比较即可发现问题所在。
你只是天真地下载了网站源
如果您在浏览器中打开开发者工具(通常是 F12)并打开“网络”选项卡,然后重新加载页面,您将看到所有发出的请求。
您会注意到几个 javascript 文件,并且在该列表的某处您还会看到一个名为 de.json
的文件。如果您查看该请求的响应表,您将看到所有费率显示为 json。
其中一个 javascript 文件对此进行解析并在浏览器的 table 中显示此数据。 Postman 没有 javascript 翻译;实际上它确实如此,但它的使用方式与网络浏览器不同。因此请求整个页面不会向您显示此数据。
但是,如果您 GET https://www.ups.com/assets/resources/fuel-surcharge/de.json,您将获得您想要的数据。
我想抓取网站 https://www.ups.com/de/de/shipping/surcharges/fuel-surcharges.page。在那里,该公司将他们添加到发票金额中的所有燃油附加费付清。我需要这些信息来正确计算一些成本。不幸的是,UPS 目前不愿意定期以可读格式向我发送数据。于是,我想到了自己爬网站获取信息。
不幸的是,当使用邮递员或我的爬虫工具rcrawler时,对站点的GET请求隐藏了数据tables。我如何才能像使用 chrome 浏览器时那样欺骗网站 return 所有数据?
例如,标准层费用 table 在邮递员中看起来像这样(仅包含列的标题但没有值):
<div class="ups-contentBlock_wrap clearfix">
<p>Der Standard Service Treibstoffzuschlag gilt für
alle UPS Standard Sendungen. Die Änderungen des
auf den nächsten Cent gerundeten Zuschlages
werden am Montag jeder Woche wirksam und basieren
auf den von der Generaldirektion der
Europäischen Kommission (ECDG) festgesetzten
Verbraucherpreisen für Dieselkraftstoffe,
einschliesslich der Zölle und Steuern zweier
Vorwochen. Der Zuschlag für die Woche vom 6.
Februar 2017 basiert auf dem Dieselkraftstoffpreis
für die Woche vom 23. Januar 2017.
Wöchentliche Aktualisierungen werden von der
Generaldirektion Energie der Europäischen
Kommission (ECDG) für Energie und Verkehr im
Ölbericht veröffentlicht.</p>
<p>Der Treibstoffzuschlag fü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öhe des Treibstoffzuschlags kann sich ohne
vorhergehende Ankündigung ändern. Wenn der
Treibstoffzuschlag über 14,50% ansteigt oder es
zu Änderungen der Grenzwerte kommt, wird die
obenstehende Übersicht aktualisiert. Ungeachtet
der durch die ECDG genannten durchschnittlichen
Treibstoffpreise oder der obenstehenden
Übersicht werden die aktuellen oben
veröffentlichen prozentualen Anteile des
Treibstoffzuschlages für die festgelegten
Zeiträume berücksichtigt.</p>
</div>
将此与浏览器结果进行比较即可发现问题所在。
你只是天真地下载了网站源
如果您在浏览器中打开开发者工具(通常是 F12)并打开“网络”选项卡,然后重新加载页面,您将看到所有发出的请求。
您会注意到几个 javascript 文件,并且在该列表的某处您还会看到一个名为 de.json
的文件。如果您查看该请求的响应表,您将看到所有费率显示为 json。
其中一个 javascript 文件对此进行解析并在浏览器的 table 中显示此数据。 Postman 没有 javascript 翻译;实际上它确实如此,但它的使用方式与网络浏览器不同。因此请求整个页面不会向您显示此数据。
但是,如果您 GET https://www.ups.com/assets/resources/fuel-surcharge/de.json,您将获得您想要的数据。