Cookieを使用してカールで言語を設定する

Cookieを使用してカールで言語を設定する

curl | grepWebページの一部のデータが必要ですが、後ろに言語を英語に設定してください。ブラウザでリンクをクリックすると、これを行うことができます。

まずSelectCulture、ページをインポートしてクッキーをファイルに保存し、それを使用して必要なページをインポートします。

#!/bin/bash

#tmp_file="$(mktemp)"
tmp_file="cookies"

curl -s \
    --location \
    --cookie "$tmp_file" \
    --cookie-jar "$tmp_file" \
    --user-agent Mozilla/4.0 \
    --data-urlencode "ReturnUrl=http://it.bca-europe.com/Default.aspx" \
    "http://it.bca-europe.com/Home/SelectCulture/en-GB-BDIT" | egrep "Ospite|Guest"

curl -s \
    --location \
    --cookie "$tmp_file" \
    --user-agent Mozilla/4.0 \
    "http://it.bca-europe.com/Default.aspx" | egrep "Ospite|Guest"

問題は、最初の実行時にファイルがcookiesまだ存在しない場合、言語が変更されないことです(イタリア語が表示されます)。オスピット変えるゲスト)、スクリプトは2回目の実行から機能します。

たとえば、静的ファイルの代わりに一時ファイルを使用する必要はありません。そして奇妙なことに、一度に動作させることはできません。

どんな提案がありますか?

答え1

ブラウザは通常、すべての要求に対して許可されている言語のリストを送信します。 CMSは通常、Cookieが設定されていない場合にこの機能を使用します。 (理論的には、クッキーは単なる代替であり、言語設定は正確です。)これは <span>Hello Guest</span>私にとって効果的です。

curl -s  --location -H 'Accept-Language: en' "http://it.bca-europe.com/Home/SelectCulture/en-GB-BDIT" | egrep "Ospite|Guest"

関連情報