我試圖從一些網站上抓取數據。對於幾個網站它似乎都很好,但對於一個網站,它似乎無法獲得任何HTML。這是我的代碼:簡單DOM file_get_html什麼都不返回
<?php include_once('simple_html_dom.php');
$html = file_get_html('https://www.magiccardmarket.eu/?mainPage=showSearchResult&searchFor=' . $_POST['data']);
echo $html; ?>
我正在使用ajax來獲取數據。當我在js中記錄返回的值時,它完全是空的。
難道這是因爲這個網站在https上運行嗎?如果是這樣,有什麼辦法可以解決它嗎? (我試過改變了網址爲http,但我得到了相同的結果)
更新:
如果我的var_dump的$ HTML變量,我得到布爾(假)。
我的PHP錯誤日誌中這樣說:
[27月2014年22點20分五十秒歐洲/阿姆斯特丹] PHP的警告:的file_get_contents(http://www.magiccardmarket.eu/?mainPage=showSearchResult&searchFor=tarmogoyf):未能打開流:HTTP請求失敗! HTTP/1.0 403 /Users/leondewit/PhpstormProjects/Magic/stores/simple_html_dom.php禁止 上線75
只需嘗試標準調試。也許有錯誤。嘗試啓用error_reporting或檢查錯誤日誌。嘗試echo'ing別的''而不是'$ html'來看看你是否得到任何結果。此外,也許嘗試'var_dump($ html);'而不是隻是回聲它。 –
用反饋更新了我的問題。另外,如果我回顯其他東西(即一個字符串),我會得到一個正常的結果。 – Leon
'403 Forbidden'錯誤代碼是從您嘗試聯繫的服務器(magiccardmarket)發送的,通常在您請求的頁面需要登錄時發送。他們可能阻止來自不是瀏覽器的用戶代理的自動請求。你可以嘗試改變你的用戶代理,但這真是一個猜測。如果是這種情況,他們會阻止它,原因很可能是他們不希望人們濫用其網站。 –