Day34 参加职训(机器学习与资料分析工程师培训班),网站设计与网页工程技术

目标: 爬取股价,使用线性回归预测股价

from datetime import time
from stock.models import stock_price
from django.shortcuts import render
from django.http.response import JsonResponse, HttpResponse
import csv
import requests as s
# Create your views here.

def getCSVStock(request, date, stock_no):
    url = 'https://www.twse.com.tw/exchangeReport/STOCK_DAY_AVG?response=csv&date={}&stockNo={}'.format(date, stock_no)
    res = s.get(url)
    decode_content = res.content.decode('big5')
    rows = csv.reader(decode_content.splitlines(), delimiter=',')
    data_list = list(rows)
    # stock_sn = "{}-{}{}{}".format(stock_no, int(timestr[0]) + 1911, timestr[1], timestr[2])
    # stock_no = stock_no
    # datetime = "{}-{}-{}".format(int(timestr[0]) + 1911, timestr[1], timestr[2])
    # close_price = data[1]
    # predict_price = 0
    db_list = list()
    for data in data_list:
        try:
            timestr = data[0].split('/')
        except:
            timestr = None
        if timestr:
            if len(timestr) == 3:
                ISOdateStr = "{}-{}-{}".format(int(timestr[0])+1911, timestr[1], timestr[2])
                SerNo = "{}-{}{}{}".format(stock_no, int(timestr[0])+1911, timestr[1], timestr[2])
                db_list.append([SerNo, stock_no, ISOdateStr, data[1], '0'])
                # Store to database
                # 1. Check record is existed or not.
                # 2. Save to database.
                try:
                    p = stock_price.objects.get(stock_sn = SerNo)
                except:
                    p = None

                if p == None:
                    p = stock_price(stock_sn = SerNo, stock_no = stock_no, datetime = ISOdateStr, close_price=data[1], predict_price='0')
                    p.save()

    return HttpResponse(db_list)

今日先做资料处理,并写在django内,之後连上localhost就可以爬取股价


<<:  [Vue.js] 栏位输入後按 Enter 自动执行 (Enter Event)

>>:  Day35 参加职训(机器学习与资料分析工程师培训班),专题讨论

Day05:总之,架构设计什麽的,非常重要

《人月神话》这本书中一直强调: 软件设计很重要的原则之一,就是保有「概念的整体性」。 为什麽要保有概...

【Day 30】递回

最後一天,我想要用递回(Recursion)来结束我们的三十天! 递回的观念,其实就是让一个函式可以...

证书签名请求 (CSR)

您应该生成公钥和私钥的密钥对,并将私钥保密。CSR 包含有关主题的信息、公钥、由私钥签名以避免欺骗 ...

[CSS] Flex/Grid Layout Modules, part 9

你以为网格格线告一个段落後,我会开始讲网格单元吗?当然不是啊,我们网格容器都还没讲完呢。剩下一点小东...

【Day14】利用Ezyme来跑个小小测试,还有..测试权衡是虾咪东东 (•ө•)!!?

写测试时,我们基本需要三样东西 Enzyme Enzyme跟React沟通的适配器(Adapter)...