Как мне CURL www.google.com - он продолжает перенаправлять меня на .co.uk

Попробуйте обработать полученные данные постепенно.

В приведенном ниже фрагменте элементы, сгенерированные в блоках 250, в основном с использованием jQuery offferred.notify () и deferred.progress () .

Когда все 10000 обработанных объектов, deferred объект resolved с коллекцией из 10 000 элементов. Затем элементы добавляются к document при одном вызове .html() в обратном вызове отложен. Then () .done(); .fail() callback cast как null.

В качестве альтернативы, можно добавить элементы к document в блоках 250, в пределах deferred.progress обратного вызова; вместо [1]

setTimeout используется для предотвращения «замораживания веб-браузера».

g4]

$(function() {
// 10k items 
var arr = $.map(new Array(10000), function(v, k) {
  return v === undefined ? k : null
});
  
var len = arr.length;
var dfd = new $.Deferred();
// collection of items processed at `for` loop in blocks of 250
var fragment = [];
var redraw = function() {
  for (i = 0 ; i < 250; i++)
    {
        // configurationVariableChart.row.add(
        // $(
        fragment.push('' +
                '' + arr[i] + '' +
            '')
        // )[0]);
    };
    arr.splice(0, 250);
    console.log(fragment, arr, arr.length);
    return dfd.notify([arr, fragment])
};

$.when(redraw())
// `done` callbacks
.then(function(data) {
  $("#results").html(data.join(","));
  delete fragment;
}
  // `fail` callbacks      
 , null
  // `progress` callbacks
 , function(data) {
  // log ,  display `progress` of tasks
     console.log(data);
     $("progress").val(data[1].length);
     $("output:first").text(Math.floor(data[1].length / 100) + "%");
     $("output:last").text(data[1].length +" of "+ len + " items processed");
     $("#results").html("processing data...");
     if (data[0].length) {
         var s = setTimeout(function() {
             redraw()
         }, 100)
     } else {
       clearTimeout(s);
       dfd.resolve(data[1]);
     }
})
})



jsfiddle http://jsfiddle.net/guest271314/ess28zLh/

13
задан hakre 12 June 2012 в 21:46
поделиться

5 ответов

Вам нужно использовать curl с куки-файлом, который симулирует аналогичное поведение в браузере.

Когда вы посещаете google.com из Англии, он перенаправляет вас на google.co.uk, однако на этой странице есть ссылка "go to google.com", которая позволяет вам вернуться на google.com и остаться там. Она использует файл cookie, чтобы запомнить настройки вашего сайта.

Например, вот куки, которые у меня есть после этого (используя firefox):

alt text

13
ответ дан 1 December 2019 в 20:29
поделиться

Попробуйте получить доступ www.google.com/ncr , он избежет перенаправления на страницу .Co.uk (или любой другой национальной).

12
ответ дан 1 December 2019 в 20:29
поделиться

Несколько взлома, но как насчет использования IP-адреса? http://216.239.59.147/ http://66.102.7.104/

1
ответ дан 1 December 2019 в 20:29
поделиться

Вы можете использовать www.google.co.uk напрямую, без разницы. google.com/.net всегда выполняет перенаправление в ваше местоположение, но если вы используете TLD страны, например .co.uk, перенаправление не произойдет.

Нет никакого (известного мне) способа предотвратить перенаправление при использовании .com или .net.

0
ответ дан 1 December 2019 в 20:29
поделиться

Один из способов избежать принятия решения Google о том, в какой стране вы находитесь, - это установить другой IP-адрес. Просто получите один из многих американских прокси-серверов из Интернета и сделайте что-то вроде этого:

$ch=curl_init();
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_FOLLOWLOCTION,1); 
curl_setopt($ch,CURLOPT_PROXY,"8.12.33.159");
curl_setopt($ch,CURLOPT_PROXYPORT,"80");
curl_setopt($ch,CURLOPT_USERAGENT,"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3");
curl_setopt($ch,CURLOPT_URL,$URI);
$results=curl_exec($ch);
curl_close($ch);

Таким образом, Google будет думать, что вы пришли с американского IP-адреса, а не перенаправляете на местный Google.

0
ответ дан 1 December 2019 в 20:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: