分享

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

 python芊 2023-01-02 发布于湖南

前言

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

另我给大家准备了一些资料,包括:

2022最新Python视频教程、Python电子书10个G

(涵盖基础、爬虫、数据分析、web开发、机器学习、人工智能、面试题)、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. 股票信息

  3. 数据在哪里?

  4. 通过 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. 发送请求

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

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

  2. .text: 获取文本内容

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

  4. .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])

尾语 💝

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

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

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

—— 心灵鸡汤

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多