python爬取股票网站的历史周价格

import  requests

from bs4 import  BeautifulSoup as bs
import json
import csv

#宏变量存储目标js的URL列表
STOCKPAGEURL = []
#宏变量存储日期列表,事先爬取
dateList = [ '2018-05-25', '2018-06-01', '2018-06-08', '2018-06-15', '2018-06-22', '2018-06-29', '2018-07-06', '2018-07-13', '2018-07-17']
def Get_Url(num):
    urlFront = 'http://pdfm.eastmoney.com/EM_UBG_PDTI_Fast/api/js?rtntype=5&token=4f1862fc3b5e77c150a2b985b12db0fd&cb=jQuery183011315552915535987_1527650090681&id='
    urlRear = '1&type=wk&authorityType=&_=1527650434356'
    for i in range(0,num):
        STOCKPAGEURL.append(urlFront+str(600000+i)+urlRear)
def GetInfo(num):
    for i in range(num):
        try:
            headers = {
                'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36',
                'Referer': 'http://quote.eastmoney.com/sh603385.html',
                'Accept': '*/*',
                'Accept-Encoding': 'gzip, deflate',
                'Accept-Language': 'keep-alive',
                'Connection': 'keep-alive'
            }
            pages = requests.get(STOCKPAGEURL[i], headers=headers)
            pages.encoding = 'utf-8'
            texts = pages.text.split('(')[1].split(')')[0]
            stockName = json.loads(texts)
            date = stockName['data'][0].split(',')

            # 获取股票的名称、代码和当前价格等基本信息,存储在stockInfo变量中
            stockInfo = []
            stockInfo.append(stockName['name'])
            stockInfo.append(stockName['code'])
            stockInfo.append(stockName['info']['c'])

            # 获取股票每周的历史价格,存储在stockInfo变量中
            for i in range(len(dateList)):
                dataListCount = 0
                for j in range(len(stockName['data'])):
                    temp = stockName['data'][j].split(',')
                    if temp[0] == dateList[i]:
                        stockInfo.append(temp[4])
                        break
                    else:
                        dataListCount += 1
                    if dataListCount == len(stockName['data']):
                        stockInfo.append('0')
            # 将变量stockInfo的数据存入csv
            CsvDownload(stockInfo)
        except:
            pass
def CsvDownload(stockInfo):
    print(stockInfo[1])
    out = open('dataset.csv','a', newline='')
    csv_write = csv.writer(out,dialect='excel')
    csv_write.writerow(stockInfo)
if __name__ == "__main__":
    firstLine = ['name','code','pricetody'] + dateList
    CsvDownload(firstLine)
    num = 5000
    Get_Url(num)
    GetInfo(num)
```python


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值