当前位置: 首页 > news >正文

使用 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=56ef552233dadd465356ed5e0

http://www.mrgr.cn/news/55279.html

相关文章:

  • string
  • 【Linux】【命令】查找(grep/find)与统计(wc)
  • 专家辅助证人出庭质证实务运用之技巧
  • webstorm 编辑器配置及配置迁移
  • RestTemplate 学习笔记
  • 精准布局:探索CSS中的盒子固定定位的魅力
  • 初探JSP
  • 如何使用 Git Revert 撤销合并提交
  • 公众号变现及生财内参项目建议
  • Linux虚拟机安装
  • Vue2、Vue3温习解惑知识点
  • java写一个MD5加密工具
  • Delphi下多线程控件BMDThread使用详解
  • nginx精讲
  • vue3 非父子组件间传值代码
  • Sigrity-Power SI如何使用Model Extraction模式同时提取电源和信号网络的S参数操作指导
  • vbs给qq发送消息
  • 2024人工智能报告.zip |一文迅速了解今年的AI界都发生了什么?
  • 基于SSM的校园跑腿网站的设计与实现
  • 银行报表测试
  • 简单走近ChatGPT
  • 科隆仪表IFC300W资料下载
  • 【QT速成】半小时入门QT6之QT前置知识扫盲(超详细QT工程解析)
  • MongoDB Shell 基本命令(二)操作符
  • Sigrity-Power SI如何使用Model Extraction模式提取电源网络的S参数和阻抗操作指导(一)
  • 探索CompletableFuture:高效异步编程的利器