2011-12-20 113 views
1

我試圖從PHP中的另一個網站加載一個頁面,這樣我就可以抓取它的內容。這適用於幾乎任何其他網頁,但由於某些原因,它不與這一個工作:PHP中的cURL不檢索響應

http://www.bkstr.com/webapp/wcs/stores/servlet/CourseMaterialsResultsView?catalogId=10001&categoryId=9604&storeId=10161&langId=-1&programId=562&termId=100022286&divisionDisplayName=Stanford&departmentDisplayName=CS&courseDisplayName=103&sectionDisplayName=01

有人知道爲什麼嗎?它是防火牆還是什麼? 或知道另一種方式去做這件事?即使在另一種語言?

下面是我使用的捲曲代碼:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_URL, $theurl); 
$response = curl_exec($ch); 
curl_close($ch); 

我已經試過這些捲曲選項:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_TIMEOUT, 5); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_PORT , *ports 22 and 433*); 

**知道任何其他端口來試試呢?或者找出主機正在使用哪個端口的方法?我正試圖通過可能的端口循環。

我試圖獲取信息,並在這裏是我得到了什麼:

$info = curl_getinfo($ch); 
print_r($info); 

回報

Array ([url] => http://www.bkstr.com/webapp/wcs/stores/servlet/CourseMaterialsResultsView?catalogId=10001&categoryId=9604&storeId=10161&langId=-1&programId=562&termId=100022286&divisionDisplayName=Stanford&departmentDisplayName=CS&courseDisplayName=103§ionDisplayName=01 [content_type] => [http_code] => 0 [header_size] => 0 [request_size] => 289 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0.602861 [namelookup_time] => 0.226121 [connect_time] => 0.285047 [pretransfer_time] => 0.285149 [size_upload] => 0 [size_download] => 0 [speed_download] => 0 [speed_upload] => 0 [download_content_length] => 0 [upload_content_length] => 0 [starttransfer_time] => 0.602824 [redirect_time] => 0) 

感謝一大堆!

+3

看起來像網站已關閉或無法訪問這裏也可以解釋它?該網站可能確實是防火牆。 – ChrisR 2011-12-20 08:02:00

+1

我有'curl:(56)Recv失敗:連接重置peer'所以我認爲它的問題在那裏的網站。 – piotrekkr 2011-12-20 08:04:55

+0

網站也在這裏(荷蘭)。這將解釋很多:) – Oldskool 2011-12-20 08:21:34

回答

0

我現在意識到Web管理員一定不能啓用CORS。爲了抓取頁面,我編寫了一個Java bot,它在我的瀏覽器中加載了頁面並將其保存到一個文件中。凌亂,但它最終的工作...

+0

IMacros也不錯。這些網址參數是什麼? – ArtisticPhoenix 2014-07-11 00:21:30