2013-03-28 77 views
0

我想使用php cURL來獲取亞馬遜網頁,但得到 HTTP/1.1 503服務暫時不可用。亞馬遜是否阻止cURL?亞馬遜阻止cURL請求?

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

這就是我想找到的。也許亞馬遜尋找瀏覽器通常設置的東西,但我沒有設置捲曲。我試過上面的代碼,但它把我帶到另一個頁面。 – user2219698

+0

可以肯定的是,在你的機器和亞馬遜之間運行wireshark,捕獲數據,通過捲曲推送相同的東西。 – 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頁。