1. 程式人生 > >股票爬蟲項目總結

股票爬蟲項目總結

python end taf 登入 pan IT OS 使用 折線

通過爬取雅虎財經上的股票數據,並繪制出股價的K-折線圖,實現了買入\賣出股票時機的分析。在這個過程中發現了幾個以前新問題,記錄如下:

1、python中日期與時間處理模塊(date和datatime)

time模塊主要用於時間訪問和轉換,這個模塊提供了各種與時間相關的函數。time的時間戳格式,字符串格式之間的轉換如下圖所示:需要通過struct_time做中轉站,不能直接一步到位。

技術分享圖片

2、爬取數據的保存

(1)、通過request.get(url)得到的數據是requests.models.Response類型,我們要查看的話必須把它轉化為.text格式才能查看,把該數據保存到.csv中操作如下:

r=requests.get(url)
f = open(name+.csv, w)#創建存放股票數據的csv文件
f.write(r.text)#將獲得的股票數據以文本數據的形式寫入csv文件中
f.close()
#將.csv文件讀取成dataFrame格式,並修改索引
data = pd.read_csv(name+.csv, index_col=0,parse_dates=True, sep=",", dayfirst=True)
#修改索引和列的名稱,以適應本文的分析
data.index.rename(date, inplace=True)
data.rename(columns
={Open:open, High:high, Low:low, Close:close,Volume:volume}, inplace=True)

(2)、如果返回的數據是dataFrame類型,則可以直接使用dataFrame.to_csv(‘xx.csv‘)存儲為,csv文件。或者使用dataFrame.to_sql(‘xxx.sql‘)保存到sql數據庫中:

s = pdr.get_data_yahoo(name, begin, end)#得到的數據直接為dataFrame格式
s.to_csv(name+.csv)
data = pd.read_csv(name+
.csv, index_col=0,parse_dates=True, sep=",", dayfirst=True) #修改索引和列的名稱,以適應本文的分析 data.index.rename(date, inplace=True) data.rename(columns={Open:open, High:high, Low:low, Close:close,Volume:volume}, inplace=True)

(3)爬蟲如何對抗網站的反爬蟲機制:通過user-agent模擬用戶登入網站。

def get_one_page(url):
    req=urllib.request.Request(url)
    #模擬瀏覽器post請求信息
    req.add_header(User-Agent,Mozilla/5.0(Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36)
    try:
        response=urllib.request.urlopen(req)
        response=response.read().decode(utf-8)
        return response
    except RequestException:
        return None

股票爬蟲項目總結