2014-03-29 98 views
0

我嘗試使用下面的代碼刮從網站的一些產品細節:403錯誤

$list_url = "http://www.topshop.com/en/tsuk/category/sale-offers-436/sale-799"; 
$html = file_get_contents($list_url); 
echo $html; 

不過,我得到這個錯誤:

Warning: file_get_contents(http://www.topshop.com/en/tsuk/category/sale-offers-436/sale-799) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in /homepages/19/d361310357/htdocs/shopaholic/rss/topshop_f_uk.php on line 123

我認爲這是網站阻止拼寫的一種方式。有沒有辦法解決這個問題 - 也許使用cURL並設置用戶代理?

如果沒有,是否有另一種獲取基本產品數據的方法,如項目名稱和價格?

編輯

我的代碼的上下文是我最終還是希望能夠實現如下:

$doc = new DOMDocument(); 
$doc->loadHTML($html); 
$xpath = new DOMXPath($doc); 

回答

0

我已經設法通過添加以下代碼來解決它......

ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 6.0)'); 

...按this answer

-1

你應該使用捲曲,不與的file_get_contents的簡單方法()。
使用cURL並設置適當的http頭來模仿正確的http請求(真實的請求)。

P.S. :設置cURL以遵循重定向。這裏是鏈接到cURL