使用 Python 爬取某财网并可视化今日涨停股票数据

引言

在本文中,我们将介绍如何使用 Python 语言来爬取某财网站上的今日涨停股票数据,并对其进行简单的数据分析与可视化。通过这个过程,你将学习到如何处理网络请求、解析 JSON 数据、以及使用 Matplotlib 进行数据可视化。
目标网站

准备工作

在开始之前,请确保你的环境中已经安装了以下 Python 库:

  • requests 用于发送 HTTP 请求。
  • pandas 用于数据处理。
  • execjs 用于执行 JavaScript 代码。
  • matplotlib 用于绘图。
  • fake_useragent 用于生成随机的 User-Agent 字符串。
  • 你可以使用 pip 来安装这些库(如果还没有安装的话):

    pip install requests pandas execjs matplotlib fake_useragent
    

    步骤详解

    1. 导入所需的库

    首先我们需要导入项目中需要用到的所有库。

    import csv
    import random
    import pandas as pd
    import requests
    import execjs
    import json
    from fake_useragent import UserAgent
    from matplotlib import pyplot as plt
    from matplotlib.font_manager import FontProperties
    

    2. 设置中文显示支持

    为了确保图表中的中文能够正确显示,我们设置字体为宋体,并解决负号显示问题。

    font = FontProperties(fname=r"C:\Windows\Fonts\simsun.ttc", size=12)
    plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题
    plt.rcParams['font.family'] = ['sans-serif']
    plt.rcParams['font.sans-serif'] = ['SimSun']  # 使用宋体
    

    3. 读取代理池文件中的代理列表

    接下来,我们将从本地文件中读取代理服务器列表,以避免被目标网站封禁 IP。

    file_path = "E:/Python/代理池/proxies.txt"
    proxies = []
    with open(file_path, 'r') as file:
        for line in file:
            proxy = line.strip()
            proxies.append(proxy)
    

    4. 读取并编译JavaScript代码

    由于目标网站可能需要一些动态生成的参数,我们需要读取一个包含 JavaScript 代码的文件,并使用 execjs 库来运行这段代码。

    with open("E:\\Python\\网页逆向爬虫\\day35 同花顺案例\\04 问财2版本.js", "r", encoding='utf-8') as f:
        data = f.read()
    
    JS = execjs.compile(data)
    v = JS.call("yyy.genV")
    

    5. 创建会话对象并设置请求头信息

    创建一个 requests.Session 对象,以便可以保持 cookies 跨多个请求。同时,构建请求头信息,包括 Cookie 和 User-Agent。

    session = requests.session()
    url = "http://www.iwencai.com/customized/chart/get-robot-data"
    headers = {
       
        "Cookie": f"other_uid=Ths_iwencai_Xuangu_jqg03tda4wk0hzftcf032mw2prdo0ffj; ta_random_userid=okfl1vxvlo; cid=56ef552233dadd465356ed5e073e2f7f1684816461; u_dpass=TCBjRthQXdD

    作者:白狐欧莱雅

    物联沃分享整理
    物联沃-IOTWORD物联网 » 使用 Python 爬取某财网并可视化今日涨停股票数据

    发表回复