2016-04-15 82 views
0

的內容,我會reask這個問題:file_get_content無法加載的網站

我試圖建立,即針對特定使用simple_html_dom網站的web爬蟲。我試着加載使用幾種方法已經這樣一個網站類別的內容:LOAD_FILE,file_get_content,file_get_html,str_get_html,但它一直給我這樣一個「未找到」消息:

"Check your spelling 
Use another word or term similar to what you are looking for. 
It is better if you use just one key word for searching. 
Generally used keywords will give better result." 

就好像我的代碼試圖加載空白搜索(沒有關鍵字)。當我將url直接複製到瀏覽器中時,我看到了我想要的內容和元素。 這是否意味着有一個網站的內容無法通過simple_html_dom方法加載?

這裏是我的測試代碼:

include_once('simple_html_dom.php'); 

    $target_url = "http://www.zalora.co.id/women/sepatu/"; 

    $html = new simple_html_dom(); 
    $html -> load_file($target_url); 

    //$html = file_get_html($target_url); 

    //$html = file_get_contents($target_url); 
    //$html = str_get_html($html); 

    echo $html; 

回答

0

我無法解釋爲什麼你得到這樣的結果,似乎很奇怪,我。我只是試圖加載頁面的HTML,它工作得很好,雖然我用cURL。這是我使用的代碼:

$ch = curl_init('http://www.zalora.co.id/women/sepatu/'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36'); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_HEADER, FALSE); 
$curl_scraped_page = curl_exec($ch); 
$html = new simple_html_dom(); 
$html->load($curl_scraped_page, true, false);   
echo $html; 

,我想說的是,如果你正在尋找從頁面刮價格,那麼你的運氣了另一件事。看看源代碼(右鍵單擊頁面),你會看到價格不可見。他們顯然正在努力避免被刮傷。不幸的是,我不知道你將不得不採用哪種替代解析工具才能獲得成功。

+0

感謝您的建議。我會嘗試你的代碼。是的,你是對的,雖然我檢查元素時有價格,但當我試圖查看頁面源代碼時,價格不在於HTML元素之一,而是在var應用程序中。這意味着,他們可能會嘗試使用Ajax或Json值來隱藏它們的值。我的代碼甚至無法訪問這些產品的鏈接,因爲它們被隱藏了。 –

+0

順便說一句,我發現另一個網站,就像這個zalora,誰避免被刮,甚至更糟糕,因爲沒有鏈接或價值觀的頁面源。他們使用ajax將其隱藏在另一個「鏈接」中。所以這意味着我需要訪問這些鏈接,如果我想獲得他們的產品價值。 –

+0

@RudyRaito讓我知道你是否找到另一個解析器。我剛讀過硒。簡單的HTML DOM是一個很好的初學者腳本,當我開始使用它時,我是一個真正的初學者,但現在我正在考慮升級。 –