2013-02-01 44 views
4

我是PHP新手。我搜索了StackOverflow並按照類似問題的答案進行了操作。但是,這些說明不適合我。即使CURLOPT_FOLLOWLOCATION設置爲FALSE,也請求重定向

這是問題:

我試圖使用PHP捲曲解析獲取HTML。 http://actas.rfef.es/actas/NPortada 這是一個可公開訪問的頁面。當我通過瀏覽器的地址欄請求頁面時,它工作正常。但是,如果請求是通過捲曲,我將被重定向到http://actas.rfef.es/actas/NLogin(0字節空白頁)。 我認爲useragent可能是一個問題,並將curl的用戶代理值設置爲false,但仍然會重定向!

這裏是我的代碼:

$home="http://actas.rfef.es/actas/NPortada"; 
$ch = curl_init(); 
curl_setopt($ch,CURLOPT_URL,$home); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch,CURLOPT_HEADER, TRUE); 
curl_setopt($ch,CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:18.0)Gecko/20100101 Firefox/18.0"); 
curl_setopt($ch,CURLOPT_FOLLOWLOCATION, FALSE); 
curl_setopt($ch,CURLOPT_COOKIEJAR, "cookies.txt"); 
echo curl_exec($ch); 
curl_close($ch); 

爲什麼它重定向,即使followLocation設置爲false?該目標頁面中沒有元刷新標籤。

如何避免被重定向並獲取目標頁面的html?我究竟做錯了什麼?

我一直在爲這個問題在過去3天掙扎。請任何人都可以幫助我?提前致謝。

+0

爲什麼不使用'file_get_contents'? –

+0

@qeremy我正在爲file_get_contents($ url)獲得相同的空白頁面。可能是他們禁用了file_get_contents.Im正在使用cURL查找解決方案。 –

+0

你有沒有找到這個解決方案? – Justin

回答

0

瀏覽器OK!但curl(在PHP)不起作用!然後看下面的內容

總是在命令行上檢查curl選項!因爲這很容易!

  1. curl < url to visit >

  2. 看到請求頭在瀏覽器的工具敏熒光!

和...

  • 捲曲與瀏覽器的請求頭

    curl < url to visit >

    -A "User-Agent"

    -e "Referer"

    --cookie "Cookie Key:value"

    等等

  • 在你的情況,

    http://actas.rfef.es/actas/NPortada工作的瀏覽器不錯,但通過使用curl -v http://actas.rfef.es/actas/NPortada

    上的捲曲

    不行,你可以看到重定向

    並看到瀏覽器和使用開發工具....然後沒有重定向建立!

    enter image description here

    和捲曲帶瀏覽器的請求頭重試!用戶代理不工作,Referer不工作。

    然後嘗試使用cookie選項!

    curl -v --cookie "JSESSIONID=B2F73A51E07D624FB205A114B2CC5D19" "http://actas.rfef.es/actas/NPortada" 
    

    我找到了解決方案。 http://actas.rfef.es/actas/NPortada必須使用cookie請求!

    相關問題