2013-03-28 7 views
0

Я пытаюсь использовать php cURL для извлечения веб-страницы amazon, но получаю HTTP/1.1 503 Сервис временно недоступен. Амазонка блокирует cURL?Amazon Blocks cURL Request?

http://www.amazon.com/gp/offer-listing/B003B7Q5YY/

<?php 

function get_html_content($url) { 
    // fake user agent 
    $userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2'; 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_HEADER, 1); 
    curl_setopt($ch, CURLOPT_USERAGENT, $userAgent); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    curl_setopt($ch,CURLOPT_COOKIEFILE,'cookies.txt'); 
    curl_setopt($ch,CURLOPT_COOKIEJAR,'cookies.txt'); 

    $string = curl_exec($ch); 
    curl_close($ch); 

    return $string; 
} 

echo get_html_content("http://rads.stackoverflow.com/amzn/click/B003B7Q5YY"); 

?> 
+0

Как вы предполагаете, что амазонка может распознавать завиток, а не браузер? – KevinDTimm

+0

Вот что я пытаюсь выяснить. Возможно, Amazon ищет то, что обычно устанавливается браузером, но я не зациклился. Я попробовал вышеуказанный код, но он переводит меня на другую страницу. – user2219698

+0

, конечно, запустите wirehark между вашей машиной и амазоной, возьмите данные, нажмите то же самое через curl – KevinDTimm

ответ

3

Я использую простой

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $offers_page); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5'); 
$html = curl_exec($ch); 
curl_close($ch); 

, но у меня есть еще одна проблема. если вы отправляете много запросов на амазонку, они отправляют вам 500 страниц.