码迷,mamicode.com
首页 > 其他好文 > 详细

股票爬虫项目总结

时间:2018-05-06 12:14:02      阅读:380      评论:0      收藏:0      [点我收藏+]

标签:pos   绘制   bsp   csv   str   sep   day   get   windows   

通过爬取雅虎财经上的股票数据,并绘制出股价的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

 

股票爬虫项目总结

标签:pos   绘制   bsp   csv   str   sep   day   get   windows   

原文地址:https://www.cnblogs.com/logo-1949/p/8997643.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!