相關問題:Set session to scrape page使用curl接收和發送的cookie,但沒有得到預期的響應
作爲一個個人項目,我想我刮大學的課程目錄提供它作爲一個RESTful API。
URL1:https://duapp3.drexel.edu/webtms_du/
URL2:https://duapp3.drexel.edu/webtms_du/Colleges.asp?Term=201125&univ=DREX
要URL1設置這是需要URL2的cookie。我成功地接收和發送的cookie這樣的:
curl -c recd url1
curl -v -b recd url2
然而,迴應我從一個我在瀏覽器中看到不同。基本上,我的瀏覽器顯示我的專業列表,而curl
得到一個頁面,而不是專業的名單,它具有
<FONT COLOR=red size=5> The lists of subjects are not available online for the selected term at this time.</FONT><FONT COLOR=red size=5> Please check back again later.</FONT>
我想也許他們是檢查用戶代理,所以我想這是好:
curl -b recdcookies --user-agent "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" https://duapp3.drexel.edu/webtms_du/Colleges.asp?Term=201125&univ=DREX
但同樣意外的響應。
什麼導致瀏覽器和curl之間的不同輸出?據curl -v
顯示,它只設置一個cookie。是否因爲他們是https
頁面,我需要爲curl
添加另一個參數?
您是否在第二個請求中包含來自第一個請求的cookie? – 2012-01-06 12:04:28
@ nikc.org我是。最初當我不是,返回的頁面有一個消息說'無效的論點......'。現在它返回,但沒有課程列表,所以我認爲餅乾沒有問題 – xbonez 2012-01-06 12:06:39
也許一個愚蠢的問題,但在命令行上,你把網址放在引號中?無引號(在後臺運行)時,和號具有特殊含義。我可以很好地獲得課程列表。 – 2012-01-06 12:09:29