該命令用來爬取web頁面,也不能說是爬取,至少從目前看,它並無達到爬蟲的所有能力。html
0000 0000jquery
什麼參數都不使用時,能夠看到它就是單純的打印了頁面的代碼出來。web
0000 0001瀏覽器
若是想把網頁內容拉下來存在某個文件中方便後續處理,則使用-o參數:cookie
能夠看到,終端將再也不顯示源碼內容,而是顯示鏈接過程的信息,同時網頁的內容被保存到了index.html文件中,相似於爬蟲這裏卻是。curl
0000 0010post
上面使用-o選項的一個問題是,你須要指定一個保存的文件名稱,可是並非一直有這樣的機會,即我在連續爬取過程當中可能並不知道下一個連接中的文件名,若是一直指定的話,會難以區分,此時可使用-O選項,它會使用爬取的那個網頁的名稱做爲本地文件名保存文件,可是這樣的網頁其名稱必須是存在的,能夠看下面的兩個對比:url
能夠看到,在第一個中,因爲文件名稱是545609.html,所以它最終以該文件名保存該文件,而在後者中,根域名固然沒有文件名了,所以報錯。代理
0000 0011htm
相似於爬蟲中能夠指定代理同樣,curl也支持使用代理,使用-x參數,手頭沒有代理能夠,就不寫了,基本格式以下:
curl -x 代理IP:端口號 url
0000 0100
若是碰到cookie,能夠保存cookie,使用-D選項:
能夠看到,cookie文件有保存,雖然其實不須要cookie;
0000 0101
保存了cookie固然能夠在下次訪問時直接使用,傳入-b參數:
0000 0110
也能夠僞造瀏覽器,使用-A選項:
curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" http://www.baidu.com
0000 0111
這個能夠分塊下載,使用-r參數(竟然不是-b)
直接參考網上的代碼吧:
curl -r 0 - 10240 -o "zhao.part1" http://www.jquerycn.cn/~zzh/zhao1.mp3 &\
curl -r 10241 - 20480 -o "zhao.part1" http://www.jquerycn.cn/~zzh/zhao1.mp3 &\
curl -r 20481 - 40960 -o "zhao.part1" http://www.jquerycn.cn/~zzh/zhao1.mp3 &\
curl -r 40961 - -o "zhao.part1" http://www.jquerycn.cn/~zzh/zhao1.mp3
cat zhao.part* > zhao.mp3
上面最後把內容合併到了一塊兒。
0000 1000
想使用get?直接在url中傳吧,反正get上去也是這樣的:
curl http://www.yahoo.com/login.cgi?user=nickwolfe&password=12345
0000 1001
爲了使用post,須要-d參數:
curl -d "user=nickwolfe&password=12345" http://www.yahoo.com/login.cgi
0000 1010
當須要傳附件時使用-F,並且能夠傳幾個:
curl -F upload= $localfile -F $btn_name=$btn_value http://www.jquerycn.cn/~zzh/up_file.cgi