寫一個shell腳本利用wget抓取股票歷史數據

  今天,大數據部老大交給我一項任務——抓取股票歷史數據。因而乎,我自行在網上找了一下,發現wget真真是一個很是強大的linux下載工具。我已經被深深震撼到了。下面敘述今天的一些過程,仍是比較坎坷的。html

  首先,我利用公司如今存在的股票數據,使用hive查詢全部的股票代碼並導入本地:linux

hive -e "use stock;select distinct secucode from t_stock_tick_shsz where type='sz';" >> sz_secucode.txt

hive -e "use stock;select distinct secucode from t_stock_tick_shsz where type='sh';" >> sh_secucode.txt

  PS:上面這一步驟,由於一個小小的問題——開始沒有加關鍵字distinct,結果致使後期抓取數據抓到一大堆重複的股票代碼的數據。shell

  剛開始想偷懶,想要一句一句地粘貼wget,可是,股票代碼太多了,因此仍是寫腳本吧,shell腳本以下:瀏覽器

#下載上海交易所股票歷史記錄
#!/bin/bash                                                           
  for I in `cat sh_secucode.txt` do wget --user-agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16" \ -nv --tries=5 --timeout=5 -O /home/bigdata/script/zj/sh_history/history_data/$I.csv http://quotes.money.163.com/service/chddata.html?code=0$I&end=20130430 sleep 1s done #下載深圳交易所股票歷史記錄 #!/bin/bash for I in `cat sz_secucode.txt` do wget --user-agent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729)" \ -nv --tries=5 --timeout=5 -O /home/bigdata/script/zj/sz_history/history_data/$I.csv http://quotes.money.163.com/service/chddata.html?code=1$I&end=20130430 sleep 1s done

  PS:說一下上面這段代碼,爲何在wget有user-agent這個參數?玩過爬蟲的同窗確定都知道,當你頻繁下載一個網站的東東,這個網站會識別出這是一個爬蟲程序,因而就拒絕你下載他家的資源了,因此要設置一個代理,假裝成一個瀏覽器下載文件,這樣被發現的機率就笑了。還有,爲何要加一個sleep?這是由於有可能有的文件比較大,可能在幾毫秒以內沒有下載完就被掛停了。固然了,我這邊的每一個文件也就幾百K,因此1s也足夠了。bash

  最後,運行腳本,寫這篇文章的時候,腳本還在運行中,但願順利!O(∩_∩)O工具

相關文章
相關標籤/搜索