将curl传递给谷歌搜索

时间:2013-08-09 18:17:24

标签: php cookies curl google-search

如您所知,Google会针对不同的城市显示不同的搜索结果。例如,搜索位置设置为华盛顿的特定关键字会比较与纽约。所以,假设我想要有一个脚本,它会将带有位置的cookie文件传递到谷歌,以便轻松检查不同区域中关键字的位置。

当我将我的位置设置为波兰城市“szczecin”时,谷歌会将这两个cookie发送到我的计算机(它们是通过编辑此cookie扩展名从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 = 0Z1J2H5YI而不是L = 1c3pjemVjaW4。当我的位置设置为什切青并且在编辑此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 );

但它似乎对搜索结果没有影响 - 它们仍然由ip位置而不是此cookie定义。任何意见我做错了什么,因为通过curl发送这个cookie可能会失败?谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

快速查看cookie后,我相信S=部分是一个签名,阻止您自己设置cookie。因此,谷歌服务器可以判断cookie是否已被更改,因此您无法获得结果。

相关问题