ご存知のように、Google は都市ごとに異なる検索結果を表示します。たとえば、場所をワシントンに設定して特定のキーワードを検索すると、ニューヨークなどとは異なる結果が得られます。ですから、さまざまな領域のキーワードの位置を簡単に確認するために、場所を含む Cookie ファイルを Google に渡すスクリプトが必要だとしましょう。
場所を洗練された都市「シュチェチン」に設定すると、Google はこれら 2 つの Cookie をコンピューターに送信します (この Cookie を編集する chrome 拡張機能から json でエクスポートされます)。
[{
"domain": ".google.pl",
"expirationDate": 1391874587.99004,
"hostOnly": false,
"httpOnly": true,
"name": "NID",
"path": "/",
"secure": false,
"session": false,
"storeId": "0",
"value": "67=PnzEVGrTahfTXSlj5SMggJqdu7Vw8Q9D4PlVkYQE6gIZdA8BV3S1je-Ub5m-wEYuiJ1AvX_WAdZbxTErDUqhI1Nsil7VjcMxyizZbcI4Vhu7afewuOKnBMcCpnn2v4sH"}],
{
"domain": ".google.pl",
"expirationDate": 1439143350.316524,
"hostOnly": false,
"httpOnly": false,
"name": "PREF",
"path": "/",
"secure": false,
"session": false,
"storeId": "0",
"value": "ID=9defb5b796bd355d:U=642baf734973f22a:FF=0:TM=1376060070:LM=1376071350:L=1c3pjemVjaW4:S=8S3gsGjYc6Tm_1S-"
}]
たとえば、自分の場所を別のポーランドの都市「カトヴィツェ」に変更したい場合、決定的な違いは、PREF Cookie が L=1c3pjemVjaW4 ではなく L=0Z1J2H5YI になっていることです。場所をシュチェチンに設定し、この Cookie 拡張機能を編集して L=1c3pjemVjaW4 を L=0Z1J2H5YI に置き換えると、場所は再びカトヴィツェになります。この知識を使用して、curl で場所を設定したいと考えています。私はこのようにしています:
$cookie = "domain=.google.pl; hostOnly=FALSE; httpOnly=FALSE; expirationDate=1439135045; name=PREF; value=ID=9defb5b796bd355d:U=57ea2c0f55adb400:FF=0:TM=1376060070:LM=1376062249:L=0Z1J2H5YI:S=iaCmsUGcGZUHeQvh;";
$ch = curl_init( $wyniki_url );
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:7.0.1) Gecko/20100101 Firefox/7.0.1');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_COOKIESESSION, 1);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_close( $ch );
しかし、検索結果には何の影響もないようです。この Cookie の代わりに IP ロケーションによって定義されています。私が何を間違っているのか意見はありますか?おそらく、このCookieをcurl経由で送信すると何かが失敗するのでしょうか? 助けてくれてありがとう。