8 curl

該命令用來爬取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

相關文章
相關標籤/搜索