
curl命令模擬論壇登錄的語(yǔ)句如何寫 想用curl抓一些站點(diǎn)的數(shù)據(jù),可惜這些站點(diǎn)不向游客開放,需要用到賬戶密碼驗(yàn)證問(wèn)答之類的東西,滿世界搜索curl的教程,只找到了3個(gè)參數(shù)和賬號(hào)密碼有關(guān)的,分別是通過(guò)cookie文件、賬號(hào)密碼或提交表單的方式,介紹如下: 1、通過(guò)cookie文件:
-c/--cookie-jar <file name> 和 -b/--cookie <name=data> 這是兩個(gè)操作cookie的選項(xiàng),很多服務(wù)器是需要cookie信息的。用前一個(gè)選項(xiàng)可以指定一個(gè)文件,將其他文件中的cookie或者從服務(wù)器得到的cookie寫到文件中;后一個(gè)選項(xiàng)則用來(lái)向服務(wù)器發(fā)送cookie信息,可以用name=data的形式,也可以直接跟一個(gè)保存cookie的文件名。我用-c獲取了cookie文件,然后用-b提交該cookie文件中的信息,結(jié)果,下載到的站點(diǎn)頁(yè)面顯示我還沒有登錄。此路不通。 2、通過(guò)提交賬號(hào)密碼:
-u/--user <user:password> 和 -U/--proxy-user <user:password> 登錄某些頁(yè)面或ftp需要先進(jìn)行認(rèn)證,輸入用戶名和密碼。curl的這個(gè)選項(xiàng)可以直接處理這類操作,用指定的賬號(hào)和密碼進(jìn)行登錄認(rèn)證。 后面的選項(xiàng)指定代理的用戶名和密碼,這樣便可以直接用這個(gè)代理訪問(wèn)網(wǎng)頁(yè)了,如curl -U user:password -x 201.36.208.19:3128 http://curl.haxx.se/。可以很明顯地看出,-u參數(shù)只適用于只需要賬號(hào)和密碼登錄的站點(diǎn),對(duì)付還需要通過(guò)驗(yàn)證問(wèn)答登錄的論壇,照樣沒撤。 3、通過(guò)提交表單:
-d/--data <data> 該選項(xiàng)用來(lái)以POST方式向http服務(wù)器發(fā)送特定數(shù)據(jù),最常用的就是提交表單。如 curl -d user=username&password=111 http://www.login.com,表示用賬號(hào)username和密碼111向站點(diǎn)發(fā)送登錄申請(qǐng)。其中多個(gè)數(shù)據(jù)段可以用&進(jìn)行連接一起發(fā)送;如果數(shù)據(jù)前面加上符號(hào)@,則數(shù)據(jù)來(lái)源為后面指定的文件,如 curl -d [email=password=@D:pw.txt]password=@D:pw.txt[/email] http://www.login.com。仔細(xì)查看了該參數(shù)的幫助信息,發(fā)現(xiàn)提交表單的方式是最適合論壇登錄的情況,只可惜,教程中沒有更詳細(xì)的介紹,不知道當(dāng)存在賬號(hào)、密碼、驗(yàn)證問(wèn)答等必填字段的時(shí)候,該如何書寫語(yǔ)句。 以登錄本論壇為例,賬號(hào):namejm,密碼:123,安全提問(wèn):最后一個(gè)選項(xiàng),答案:456,其余選項(xiàng)為默認(rèn)設(shè)置,如何寫出用這些信息登錄本論壇的curl語(yǔ)句?暫時(shí)不考慮驗(yàn)證碼的因素。

