python小案例——采集网易财经数据

前言

大家早好、午好、晚好吖 ❤ ~

开发环境:

  • 解释器版本: python 3.8

  • 代码编辑器: pycharm 2021.2

  • requests: pip install requests

  • pandas: pip install pandas

  • pyecharts: pip install pyecharts

1. 什么是pachong?

采集互联网(网页/app)数据的一项技术 (图片/音频/视频/文本) + 抢购操作 / 人为能够做的一些操作(脚本)

原理:

模拟成 客户端(网页/app) 向 服务器 发送网络请求

不要让对方(服务器)难受 百度(各大搜索引擎 都是爬虫)

2. 有哪些步骤 该如何实现?

一. 思路分析

  1. 需要采集什么数据?

    股票信息

  2. 数据在哪里?

    通过 f12 打开 network(网络面板) 记录网页当中的数据资源的 抓包分析

二. 代码实现

  1. 发送请求 通过代码的方式访问网站

  2. 获取数据

  3. 解析数据 提取数据 把想要的留下来

  4. 保存数据

代码展示

导入模块

import requests     # 发送请求
import csv
with open('财经.csv', mode='a', newline='', encoding='utf-8') as f:
    csv_writer = csv.writer(f)
    csv_writer.writerow(
        ['CODE', 'SNAME', 'PRICE', 'PERCENT', 'UPDOWN', 'FIVE_MINUTE', 'OPEN', 'YESTCLOSE', 'HIGH', 'LOW', 'VOLUME', 'TURNOVER', 'HS', 'LB', 'WB', 'ZF',
         'PE', 'MCAP', 'TCAP', 'MFSUM', 'MFRATIO2', 'MFRATIO10'])
for page in range(0, 213):
    # url 数据来源 数据包 网页链接
    url = f'http://      .money.163.com/hs/service/diyrank.php?host=http%3A%2F%2Fquotes.money.163.com%2Fhs%2Fservice%2Fdiyrank.php&page={page}&query=STYPE%3AEQA&fields=NO%2CSYMBOL%2CNAME%2CPRICE%2CPERCENT%2CUPDOWN%2CFIVE_MINUTE%2COPEN%2CYESTCLOSE%2CHIGH%2CLOW%2CVOLUME%2CTURNOVER%2CHS%2CLB%2CWB%2CZF%2CPE%2CMCAP%2CTCAP%2CMFSUM%2CMFRATIO.MFRATIO2%2CMFRATIO.MFRATIO10%2CSNAME%2CCODE%2CANNOUNMT%2CUVSNEWS&sort=PERCENT&order=desc&count=24&type=query'

代码里网址就给大家屏蔽了,不然发不出来

完整代码有需要的可以文章下方名片获取哦~

(或者评论已点赞收藏,求代码,我私你呀)

  1. 发送请求

    .get / .post 爬虫99%请求方式都是这两种

    response = requests.get(url=url)
  1. 获取数据

    .text: 获取文本内容

    .content: 获取二进制数据 (图片/音频/视频)

    .json(): {}所包裹的数据 .json()取值 解析数据就会更方便 更简单 字典

    json_data = response.json()
  1. 解析数据
    list = json_data['list']
    for i in range(0, len(list)):
        CODE = list[i]['CODE']
        SNAME = list[i]['SNAME']
        PRICE = list[i]['PRICE']
        PERCENT = list[i]['PERCENT']
        UPDOWN = list[i]['UPDOWN']
        FIVE_MINUTE = list[i]['FIVE_MINUTE']
        OPEN = list[i]['OPEN']
        YESTCLOSE = list[i]['YESTCLOSE']
        HIGH = list[i]['HIGH']
        LOW = list[i]['LOW']
        VOLUME = list[i]['VOLUME']
        TURNOVER = list[i]['TURNOVER']
        HS = list[i]['HS']
        try:
            LB = list[i]['LB']
        except:
            LB = ''
        WB = list[i]['WB']
        ZF = list[i]['ZF']
        try:
            PE = list[i]['PE']
        except:
            PE = ''
        MCAP = list[i]['MCAP']
        TCAP = list[i]['TCAP']
        MFSUM = list[i]['MFSUM']
        MFRATIO2 = list[i]['MFRATIO']['MFRATIO2']
        MFRATIO10 = list[i]['MFRATIO']['MFRATIO10']
        print(CODE, SNAME, PRICE, PERCENT, UPDOWN, FIVE_MINUTE, OPEN, YESTCLOSE, HIGH, LOW, VOLUME, TURNOVER, HS, LB, WB, ZF, PE, MCAP, TCAP, MFSUM, MFRATIO2, MFRATIO10)
  1. 保存数据
        with open('财经.csv', mode='a', newline='', encoding='utf-8') as f:
            csv_writer = csv.writer(f)
            csv_writer.writerow([CODE, SNAME, PRICE, PERCENT, UPDOWN, FIVE_MINUTE, OPEN, YESTCLOSE, HIGH, LOW, VOLUME, TURNOVER, HS, LB, WB, ZF, PE, MCAP, TCAP, MFSUM, MFRATIO2, MFRATIO10])

尾语

要成功,先发疯,下定决心往前冲!

学习是需要长期坚持的,一步一个脚印地走向未来!

未来的你一定会感谢今天学习的你。

—— 心灵鸡汤

本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦

你可能感兴趣的:(python小案例——采集网易财经数据)