15 2 2019

需求:股票分析

  • 使用tushare包获取某股票的历史行情数据。

    • tushare财经数据接口包,基于该模块可以获取任意股票的历史交易数据

    • pip install tushare

  • 输出该股票所有收盘比开盘上涨3%以上的日期。

  • 输出该股票所有开盘比前日收盘跌幅超过2%的日期。

  • 假如我从2010年1月1日开始,每月第一个交易日买入1手股票,每年最后一个交易日卖出所有股票,到今天为止,我的收益如何?

import pandas as pd
import tushare as ts
df = ts.get_k_data(code='600519',start='1990')
df
本接口即将停止更新,请尽快使用Pro版接口:https://tushare.pro/document/2

 

 

​​

.dataframe tbody tr th {
    vertical-align: top;
}
​
.dataframe thead th {
    text-align: right;
}

</style>

  date open close high low volume code
0 2001-08-27 5.392 5.554 5.902 5.132 406318.00 600519
1 2001-08-28 5.467 5.759 5.781 5.407 129647.79 600519
2 2001-08-29 5.777 5.684 5.781 5.640 53252.75 600519
3 2001-08-30 5.668 5.796 5.860 5.624 48013.06 600519
4 2001-08-31 5.804 5.782 5.877 5.749 23231.48 600519
5 2001-09-03 5.812 5.779 5.870 5.757 22112.09 600519
6 2001-09-04 5.782 5.852 5.949 5.762 37006.77 600519
7 2001-09-05 5.876 5.849 5.924 5.813 26066.95 600519
8 2001-09-06 5.835 5.734 5.854 5.704 28997.03 600519
9 2001-09-07 5.702 5.574 5.773 5.570 31552.25 600519
10 2001-09-10 5.531 5.734 5.757 5.470 18878.89 600519
11 2001-09-11 5.749 5.670 5.773 5.656 11390.81 600519
12 2001-09-12 5.520 5.621 5.656 5.515 25045.19 600519
13 2001-09-13 5.626 5.607 5.671 5.577 10986.68 600519
14 2001-09-14 5.626 5.671 5.702 5.593 7672.83 600519
15 2001-09-17 5.637 5.599 5.670 5.546 8983.97 600519
16 2001-09-18 5.606 5.663 5.710 5.601 10773.26 600519
17 2001-09-19 5.671 5.768 5.768 5.634 8650.53 600519
18 2001-09-20 5.765 5.720 5.788 5.702 11173.35 600519
19 2001-09-21 5.668 5.634 5.718 5.624 7879.72 600519
20 2001-09-24 5.634 5.632 5.685 5.624 4068.60 600519
21 2001-09-25 5.668 5.660 5.709 5.632 3488.45 600519
22 2001-09-26 5.642 5.637 5.699 5.624 4956.26 600519
23 2001-09-27 5.637 5.734 5.777 5.624 8778.04 600519
24 2001-09-28 5.765 5.795 5.812 5.702 17088.47 600519
25 2001-10-08 5.781 5.715 5.809 5.663 6552.17 600519
26 2001-10-09 5.718 5.827 5.859 5.718 9558.52 600519
27 2001-10-10 5.827 5.640 5.848 5.629 17548.69 600519
28 2001-10-11 5.626 5.585 5.702 5.570 12306.84 600519
29 2001-10-12 5.609 5.624 5.726 5.320 20010.70 600519
... ... ... ... ... ... ... ...
4463 2020-05-14 1330.000 1326.590 1334.880 1325.110 18575.00 600519
4464 2020-05-15 1329.000 1313.000 1333.500 1301.880 26398.00 600519
4465 2020-05-18 1306.000 1346.210 1351.500 1305.130 34362.00 600519
4466 2020-05-19 1364.000 1346.110 1364.000 1338.000 24787.00 600519
4467 2020-05-20 1346.110 1351.000 1359.180 1336.810 21183.00 600519
4468 2020-05-21 1355.000 1366.100 1371.960 1352.860 23052.00 600519
4469 2020-05-22 1366.000 1328.200 1366.100 1322.880 34427.00 600519
4470 2020-05-25 1330.000 1362.900 1366.580 1321.000 31561.00 600519
4471 2020-05-26 1369.880 1358.000 1369.950 1355.000 22470.00 600519
4472 2020-05-27 1359.000 1338.000 1360.000 1333.000 26777.00 600519
4473 2020-05-28 1337.970 1344.000 1346.940 1321.130 26486.00 600519
4474 2020-05-29 1332.100 1366.600 1369.980 1332.100 30444.00 600519
4475 2020-06-01 1381.000 1419.500 1420.100 1381.000 35480.00 600519
4476 2020-06-02 1416.010 1410.710 1427.900 1406.660 25960.00 600519
4477 2020-06-03 1415.000 1399.300 1417.500 1395.770 23557.00 600519
4478 2020-06-04 1396.000 1407.990 1411.000 1396.000 18037.00 600519
4479 2020-06-05 1405.250 1425.000 1428.880 1401.080 18347.00 600519
4480 2020-06-08 1425.000 1406.100 1435.000 1402.010 29300.00 600519
4481 2020-06-09 1408.000 1416.550 1425.000 1400.680 22612.00 600519
4482 2020-06-10 1425.000 1423.660 1433.330 1417.000 22701.00 600519
4483 2020-06-11 1411.010 1400.460 1417.990 1396.990 30712.00 600519
4484 2020-06-12 1387.170 1416.370 1416.370 1383.310 28427.00 600519
4485 2020-06-15 1402.000 1383.000 1411.600 1381.000 34615.00 600519
4486 2020-06-16 1398.500 1403.880 1414.000 1393.130 29207.00 600519
4487 2020-06-17 1411.860 1405.000 1411.900 1395.020 19453.00 600519
4488 2020-06-18 1404.900 1413.000 1413.200 1400.100 21010.00 600519
4489 2020-06-19 1420.000 1439.840 1445.200 1415.100 38958.00 600519
4490 2020-06-22 1435.100 1439.000 1443.890 1433.200 23247.00 600519
4491 2020-06-23 1435.000 1474.500 1482.000 1433.520 33934.00 600519
4492 2020-06-24 1463.600 1460.010 1465.710 1445.000 25139.00 600519

4493 rows × 7 columns

</div>

 

#df的持久化存储
df.to_csv('maotai.csv')
#读取本地数据
df = pd.read_csv('./maotai.csv')
df.head(5)

 

​​

.dataframe tbody tr th {
    vertical-align: top;
}
​
.dataframe thead th {
    text-align: right;
}

</style>

  Unnamed: 0 date open close high low volume code
0 0 2001-08-27 5.392 5.554 5.902 5.132 406318.00 600519
1 1 2001-08-28 5.467 5.759 5.781 5.407 129647.79 600519
2 2 2001-08-29 5.777 5.684 5.781 5.640 53252.75 600519
3 3 2001-08-30 5.668 5.796 5.860 5.624 48013.06 600519
4 4 2001-08-31 5.804 5.782 5.877 5.749 23231.48 600519

</div>

 

#删除Unnamed: 0列
df.drop(labels='Unnamed: 0',axis=1,inplace=True)
df.head()

 

​​

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

  date open close high low volume code
0 2001-08-27 5.392 5.554 5.902 5.132 406318.00 600519
1 2001-08-28 5.467 5.759 5.781 5.407 129647.79 600519
2 2001-08-29 5.777 5.684 5.781 5.640 53252.75 600519
3 2001-08-30 5.668 5.796 5.860 5.624 48013.06 600519
4 2001-08-31 5.804 5.782 5.877 5.749 23231.48 600519

</div>

 

df.info()
#每一列的数据类型
#哪些列中存在空值
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4406 entries, 0 to 4405
Data columns (total 7 columns):
date      4406 non-null object
open      4406 non-null float64
close     4406 non-null float64
high      4406 non-null float64
low       4406 non-null float64
volume    4406 non-null float64
code      4406 non-null int64
dtypes: float64(5), int64(1), object(1)
memory usage: 241.0+ KB
  • 在观察数据的时候,如果发现时间数据为字符串类型则需要将其转换成时间序列类型

df['date'] = pd.to_datetime(df['date'])
#将date列作为源数据的行索引
df.set_index('date',inplace=True)
df

 

​​

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

  open close high low volume code
date            
2001-08-27 5.392 5.554 5.902 5.132 406318.00 600519
2001-08-28 5.467 5.759 5.781 5.407 129647.79 600519
2001-08-29 5.777 5.684 5.781 5.640 53252.75 600519
2001-08-30 5.668 5.796 5.860 5.624 48013.06 600519
2001-08-31 5.804 5.782 5.877 5.749 23231.48 600519
2001-09-03 5.812 5.779 5.870 5.757 22112.09 600519
2001-09-04 5.782 5.852 5.949 5.762 37006.77 600519
2001-09-05 5.876 5.849 5.924 5.813 26066.95 600519
2001-09-06 5.835 5.734 5.854 5.704 28997.03 600519
2001-09-07 5.702 5.574 5.773 5.570 31552.25 600519
2001-09-10 5.531 5.734 5.757 5.470 18878.89 600519
2001-09-11 5.749 5.670 5.773 5.656 11390.81 600519
2001-09-12 5.520 5.621 5.656 5.515 25045.19 600519
2001-09-13 5.626 5.607 5.671 5.577 10986.68 600519
2001-09-14 5.626 5.671 5.702 5.593 7672.83 600519
2001-09-17 5.637 5.599 5.670 5.546 8983.97 600519
2001-09-18 5.606 5.663 5.710 5.601 10773.26 600519
2001-09-19 5.671 5.768 5.768 5.634 8650.53 600519
2001-09-20 5.765 5.720 5.788 5.702 11173.35 600519
2001-09-21 5.668 5.634 5.718 5.624 7879.72 600519
2001-09-24 5.634 5.632 5.685 5.624 4068.60 600519
2001-09-25 5.668 5.660 5.709 5.632 3488.45 600519
2001-09-26 5.642 5.637 5.699 5.624 4956.26 600519
2001-09-27 5.637 5.734 5.777 5.624 8778.04 600519
2001-09-28 5.765 5.795 5.812 5.702 17088.47 600519
2001-10-08 5.781 5.715 5.809 5.663 6552.17 600519
2001-10-09 5.718 5.827 5.859 5.718 9558.52 600519
2001-10-10 5.827 5.640 5.848 5.629 17548.69 600519
2001-10-11 5.626 5.585 5.702 5.570 12306.84 600519
2001-10-12 5.609 5.624 5.726 5.320 20010.70 600519
... ... ... ... ... ... ...
2020-05-14 1330.000 1326.590 1334.880 1325.110 18575.00 600519
2020-05-15 1329.000 1313.000 1333.500 1301.880 26398.00 600519
2020-05-18 1306.000 1346.210 1351.500 1305.130 34362.00 600519
2020-05-19 1364.000 1346.110 1364.000 1338.000 24787.00 600519
2020-05-20 1346.110 1351.000 1359.180 1336.810 21183.00 600519
2020-05-21 1355.000 1366.100 1371.960 1352.860 23052.00 600519
2020-05-22 1366.000 1328.200 1366.100 1322.880 34427.00 600519
2020-05-25 1330.000 1362.900 1366.580 1321.000 31561.00 600519
2020-05-26 1369.880 1358.000 1369.950 1355.000 22470.00 600519
2020-05-27 1359.000 1338.000 1360.000 1333.000 26777.00 600519
2020-05-28 1337.970 1344.000 1346.940 1321.130 26486.00 600519
2020-05-29 1332.100 1366.600 1369.980 1332.100 30444.00 600519
2020-06-01 1381.000 1419.500 1420.100 1381.000 35480.00 600519
2020-06-02 1416.010 1410.710 1427.900 1406.660 25960.00 600519
2020-06-03 1415.000 1399.300 1417.500 1395.770 23557.00 600519
2020-06-04 1396.000 1407.990 1411.000 1396.000 18037.00 600519
2020-06-05 1405.250 1425.000 1428.880 1401.080 18347.00 600519
2020-06-08 1425.000 1406.100 1435.000 1402.010 29300.00 600519
2020-06-09 1408.000 1416.550 1425.000 1400.680 22612.00 600519
2020-06-10 1425.000 1423.660 1433.330 1417.000 22701.00 600519
2020-06-11 1411.010 1400.460 1417.990 1396.990 30712.00 600519
2020-06-12 1387.170 1416.370 1416.370 1383.310 28427.00 600519
2020-06-15 1402.000 1383.000 1411.600 1381.000 34615.00 600519
2020-06-16 1398.500 1403.880 1414.000 1393.130 29207.00 600519
2020-06-17 1411.860 1405.000 1411.900 1395.020 19453.00 600519
2020-06-18 1404.900 1413.000 1413.200 1400.100 21010.00 600519
2020-06-19 1420.000 1439.840 1445.200 1415.100 38958.00 600519
2020-06-22 1435.100 1439.000 1443.890 1433.200 23247.00 600519
2020-06-23 1435.000 1474.500 1482.000 1433.520 33934.00 600519
2020-06-24 1463.600 1460.010 1465.710 1445.000 25139.00 600519

4493 rows × 6 columns

</div>

 

#将布尔值作为源数据的索引
df.loc[[True,False,True]]

 

​​

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

  open close high low volume code
date            
2001-08-27 5.392 5.554 5.902 5.132 406318.00 600519
2001-08-29 5.777 5.684 5.781 5.640 53252.75 600519

</div>

 

#输出该股票所有收盘比开盘上涨3%以上的日期
#(收盘-开盘)/开盘 > 0.03
(df['close'] - df['open']) / df['open'] > 0.03

#经验:在df的处理过程中,如果遇到了一组布尔值,下一步马上将布尔值作为源数据的行索引
df.loc[(df['close'] - df['open']) / df['open'] > 0.03] #可以获取true对应行数据
df.loc[(df['close'] - df['open']) / df['open'] > 0.03].index

 

DatetimeIndex(['2001-08-27', '2001-08-28', '2001-09-10', '2001-12-21',
               '2002-01-18', '2002-01-31', '2003-01-14', '2003-10-29',
               '2004-01-05', '2004-01-14',
               ...
               '2019-03-18', '2019-04-10', '2019-04-16', '2019-05-10',
               '2019-05-15', '2019-06-11', '2019-06-20', '2019-09-12',
               '2019-09-18', '2020-02-11'],
              dtype='datetime64[ns]', name='date', length=304, freq=None)

 

#输出该股票所有开盘比前日收盘跌幅超过2%的日期。
#(开盘-前日收盘)/前日收盘 < -0.02
(df['open'] - df['close'].shift(1)) / df['close'].shift(1) < -0.02
df.loc[(df['open'] - df['close'].shift(1)) / df['close'].shift(1) < -0.02].index

 

DatetimeIndex(['2001-09-12', '2002-06-26', '2002-12-13', '2004-07-01',
               '2004-10-29', '2006-08-21', '2006-08-23', '2007-01-25',
               '2007-02-01', '2007-02-06', '2007-03-19', '2007-05-21',
               '2007-05-30', '2007-06-05', '2007-07-27', '2007-09-05',
               '2007-09-10', '2008-03-13', '2008-03-17', '2008-03-25',
               '2008-03-27', '2008-04-22', '2008-04-23', '2008-04-29',
               '2008-05-13', '2008-06-10', '2008-06-13', '2008-06-24',
               '2008-06-27', '2008-08-11', '2008-08-19', '2008-09-23',
               '2008-10-10', '2008-10-15', '2008-10-16', '2008-10-20',
               '2008-10-23', '2008-10-27', '2008-11-06', '2008-11-12',
               '2008-11-20', '2008-11-21', '2008-12-02', '2009-02-27',
               '2009-03-25', '2009-08-13', '2010-04-26', '2010-04-30',
               '2011-08-05', '2012-03-27', '2012-08-10', '2012-11-22',
               '2012-12-04', '2012-12-24', '2013-01-16', '2013-01-25',
               '2013-09-02', '2014-04-25', '2015-01-19', '2015-05-25',
               '2015-07-03', '2015-07-08', '2015-07-13', '2015-08-24',
               '2015-09-02', '2015-09-15', '2017-11-17', '2018-02-06',
               '2018-02-09', '2018-03-23', '2018-03-28', '2018-07-11',
               '2018-10-11', '2018-10-24', '2018-10-25', '2018-10-29',
               '2018-10-30', '2019-05-06', '2019-05-08', '2019-10-16',
               '2020-01-02', '2020-02-03', '2020-03-13', '2020-03-23'],
              dtype='datetime64[ns]', name='date', freq=None)

 

  • 假如我从2010年1月1日开始,每月第一个交易日买入1手股票,每年最后一个交易日卖出所有股票,到今天为止,我的收益如何?

    • 买入(开盘)

      • 一个完整的年需要买入12手==1200只

    • 卖出(收盘)

      • 一个完整的年需要卖出1次股票,一次卖出1200只

      • 特殊情况:2020年只可以买入股票无法卖出股票,没有及时卖出的股票的实际价值也要计算到总收益中

new_df = df['2010':'2020']
#买股票
#1.获取每一个完整的年对应每个月第一个交易日的行数据,行数据中可以提取出开盘价(买入股票的单价)
#实现的技术:数据的重新取样
new_df.resample(rule='M') #将每一年中每一个对应的数据取出
new_df.resample(rule='M').first() #将月份数据中的第一行数据取出

 

​​

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

  open close high low volume code
date            
2010-01-31 109.760 108.446 109.760 108.044 44304.88 600519
2010-02-28 107.769 107.776 108.216 106.576 29655.94 600519
2010-03-31 106.219 106.085 106.857 105.925 21734.74 600519
2010-04-30 101.324 102.141 102.422 101.311 23980.83 600519
2010-05-31 81.676 82.091 82.678 80.974 23975.16 600519
2010-06-30 84.075 84.637 85.166 83.278 23525.57 600519
2010-07-31 81.586 81.057 81.586 80.725 7449.69 600519
2010-08-31 89.296 92.465 93.567 89.296 42965.73 600519
2010-09-30 102.288 101.052 103.834 100.420 25589.00 600519
2010-10-31 108.858 111.776 113.045 108.858 31608.00 600519
2010-11-30 105.122 105.483 106.217 104.478 49658.00 600519
2010-12-31 130.759 130.372 133.980 128.839 38016.00 600519
2011-01-31 120.388 119.487 121.033 117.619 60462.00 600519
2011-02-28 114.656 116.124 117.136 114.334 17758.00 600519
2011-03-31 115.113 115.068 115.899 114.527 23059.00 600519
2011-04-30 115.931 115.596 116.813 115.010 18227.00 600519
2011-05-31 117.876 119.718 120.324 117.232 41270.00 600519
2011-06-30 131.467 135.197 135.255 130.772 39093.00 600519
2011-07-31 137.895 137.272 137.895 136.033 15810.00 600519
2011-08-31 148.519 145.689 148.519 145.274 18572.00 600519
2011-09-30 153.798 151.491 154.357 150.789 25689.00 600519
2011-10-31 136.735 134.672 137.394 134.407 14283.00 600519
2011-11-30 145.546 148.418 148.640 145.066 27147.00 600519
2011-12-31 152.724 152.466 154.149 150.625 33785.00 600519
2012-01-31 137.179 132.716 138.089 132.523 33878.00 600519
2012-02-29 133.382 133.347 135.044 132.437 24824.00 600519
2012-03-31 145.789 145.116 147.186 144.980 16920.00 600519
2012-04-30 140.474 147.566 147.852 140.474 40960.00 600519
2012-05-31 161.893 161.878 162.301 159.027 35339.00 600519
2012-06-30 170.489 172.187 174.071 169.565 38504.00 600519
... ... ... ... ... ... ...
2018-01-31 690.200 693.996 700.218 680.232 49612.00 600519
2018-02-28 756.262 747.122 756.558 742.379 50582.00 600519
2018-03-31 717.808 731.582 736.394 713.637 44794.00 600519
2018-04-30 670.480 670.539 681.326 664.673 32039.00 600519
2018-05-31 650.760 658.480 659.624 636.029 70259.00 600519
2018-06-30 740.614 734.679 744.410 728.417 36177.00 600519
2018-07-31 734.520 711.550 739.330 703.000 37558.00 600519
2018-08-31 731.400 714.940 732.300 714.110 25237.00 600519
2018-09-30 652.000 666.210 667.670 650.800 30179.00 600519
2018-10-31 715.410 686.150 719.000 686.150 82745.00 600519
2018-11-30 555.000 563.000 585.500 551.250 98106.00 600519
2018-12-31 589.000 601.200 605.000 584.770 83414.00 600519
2019-01-31 609.980 598.980 612.000 595.010 62286.00 600519
2019-02-28 697.040 692.670 699.000 689.610 30520.00 600519
2019-03-31 761.500 789.300 790.000 761.000 63840.00 600519
2019-04-30 860.000 859.000 868.950 851.000 60934.00 600519
2019-05-31 925.500 906.000 935.000 893.000 135099.00 600519
2019-06-30 892.000 892.000 901.350 886.280 34479.00 600519
2019-07-31 1004.520 1031.860 1035.600 1000.220 52337.00 600519
2019-08-31 976.510 959.300 977.000 953.020 35089.00 600519
2019-09-30 1139.990 1138.760 1144.980 1129.000 28234.00 600519
2019-10-31 1153.000 1167.100 1180.000 1152.010 31045.00 600519
2019-11-30 1181.000 1185.000 1191.950 1172.500 22811.00 600519
2019-12-31 1118.200 1133.000 1140.020 1118.200 30784.00 600519
2020-01-31 1128.000 1130.000 1145.060 1116.000 148099.00 600519
2020-02-29 985.000 1003.920 1010.680 980.000 123442.00 600519
2020-03-31 1050.110 1086.010 1096.550 1050.010 47663.00 600519
2020-04-30 1117.000 1103.000 1129.000 1103.000 33205.00 600519
2020-05-31 1251.000 1300.000 1300.000 1250.000 35835.00 600519
2020-06-30 1381.000 1419.500 1420.100 1381.000 35480.00 600519

126 rows × 6 columns

</div>

 

#买入股票花费的总钱数
cost_money = (new_df.resample(rule='M').first()['open']).sum() * 100
cost_money

 

4490117.100000001

 

#卖出股票的钱数
new_df.resample(rule='A')#将2010-2020年,每一年的数据取出
new_df.resample(rule='A').last()[:-1] #每一年最后一个交易日对应的行数据

 

​​

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>

  open close high low volume code
date            
2010-12-31 117.103 118.469 118.701 116.620 46084.0 600519
2011-12-31 138.039 138.468 139.600 136.105 29460.0 600519
2012-12-31 155.208 152.087 156.292 150.144 51914.0 600519
2013-12-31 93.188 96.480 97.179 92.061 57546.0 600519
2014-12-31 157.642 161.056 161.379 157.132 46269.0 600519
2015-12-31 207.487 207.458 208.704 207.106 19673.0 600519
2016-12-31 317.239 324.563 325.670 317.239 34687.0 600519
2017-12-31 707.948 687.725 716.329 681.918 76038.0 600519
2018-12-31 563.300 590.010 596.400 560.000 63678.0 600519
2019-12-31 1183.000 1183.000 1188.000 1176.510 22588.0 600519

</div>

 

recv_money = new_df.resample(rule='A').last()[:-1]['close'].sum() *1200
recv_money

 

4391179.2

 

#剩余股票的价值也要计算到总收益中,剩余股票价值的单价可以用最近一天的收盘价来表示
last_price = new_df[-1:]['close'][0]
last_monry = 6*100*last_price
#总收益
last_monry + recv_money - cost_money

 

777068.0999999996

 

  • 注意:上述对数据进行重新取样操作的前提,源数据中行索引为时间序列类型

  • 总结

    • df的持久化存储

      • df.to_xxx():可以将df中的值进行任意形式的持久化存储

    • df的加载:

      • pd.read_xxx():可以将外部数据加载到df中

    • 如何将字符串形式的时间值转换成时间序列类型

      • pd.to_datetime(df['date])

    • 如何将某一列作为源数据的行索引

      • df.set_index('colName')

    • 如何将Series进行整体的上下移动

      • Series.shift(1)

        • 整数表示下移,负数表示上移

    • 数据的重新取样

      • df.resample(rule='')

      • df.resample(rule='').last/first()

    • 可以直接将布尔值作为df的行索引,就可以取出True对应的行数据。

延伸阅读
    < /body> < /html>