2011-05-19 69 views
0

我正試圖從服務器抓取文件.pdf。頁面上有一個超鏈接,通過點擊該鏈接轉到頁面,它檢查一些特權,然後重定向到另一個頁面,該頁面顯示Iframe中.pdf的內容。抓取正在重定向的頁面

可以說開始網址是http://site.com/docs/1.pdf 點擊它進入另一個頁面,然後又一個,並談到whth最後一頁 http://site.com/viewer/pdfs/1.pdf 最後一頁顯示iframe中,PDF內容。

我意識到軟件IDM(互聯網下載管理器)可以遵循重定向並通過單擊第一個鏈接下載文件。

我想知道是否有算法或庫或類或提示,我可以弄清楚如何在PHP腳本中做到這一點。

順便說一下,一旦我寫了一個代碼來讀取頁面的標題,我可以重定向到第二頁,但我想知道是否有一個通用的算法。

回答

3

如果您正在手動執行HTTP內容,請檢查30x狀態碼和Location標頭。

但是,您可以簡單地使用CURL並設置CURLOPT_FOLLOWLOCATION

+0

+1,沒有通用算法,因爲無論如何您都必須解析HTML頁面以獲取iframe'href'。但是CURL是追蹤'位置'標題的好起點。 – Benjamin 2011-05-19 11:23:31

1

是的,就像ThiefMaster說的,你可以找到Location標題。 看看這裏,也許這可以幫助你: http://codesnippets.joyent.com/posts/show/1214這個函數檢索遠程文件的文件大小,爲什麼你不嘗試稍微改變它,以便它得到最終的URL?