爬虫实战 | 爬取东方财富网股票数据

爬取东方财富股吧中评论数据 东方财富股吧是有反爬取机制的,我们通过减慢爬取速率的方法来避免爬取检测。这种方法爬取网页数据的速率很慢,并不会对网站的访问造成影响,当然我们可以改进方法,使得爬取数据更快。但并不鼓励大家非法爬取数据,只用作学习交流。 直接上代码吧: import requests from bs4 import BeautifulSoup import time import random import csv # 导入CSV安装包 #f = open('test.csv', 'w', encoding='utf-8' 阅读详情
AI摘要

本文介绍了一个实战案例,通过分析东方财富网的网页结构,利用Python爬虫技术批量获取股票数据,并将其存储到Excel文件中。

本文转载来自:公众号 志斌的python笔记

今天有个朋友说,他想做个关于股票的可视化网页,但是缺乏股票的数据,想让志斌帮他做个爬虫来每天获取数据。所以我将它写成一个实战案例,供大家一起参考学习!

1.页面分析

此次我们获取数据的网站是东方财富网!

首先我们按F12打开开发者模式,对name里面的网页进行观察,发现数据是以jQuery加载进网页的,每次加载20个数据,如图:

我们已经发现单页数据存储的方式了,现在我们来看一下各页URL之间的联系,如图:

从图中我们可以清楚的发现,每翻一页,pn的参数增加1,所以我们构建URL时,只需让params中的pn参数循环,即可批量对网页发起访问请求,代码如下:

for page in range(1,50):
   params = (
       ('cb', 'jQuery1124031167968836399784_1615878909521'),
       ('pn', str(page)),
       ('pz', '20'),
       ('po', '1'),
       ('np', '1'),
       ('ut', 'bd1d9ddb04089700cf9c27f6f7426281'),
       ('fltt', '2'),
       ('invt', '2'),
       ('fid', 'f3'),
       ('fs', 'm:0 t:6,m:0 t:13,m:0 t:80,m:1 t:2,m:1 t:23'),
       ('fields', 'f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152'),
   )

2.获取数据

上面我们已经将网页的URL之间的联系和数据存储分析好了,下面我们就可以开始对数据进行获取了。

在上面对网页进行分析时,我们感觉这个网页存储数据是json格式的,其实不是,它前面多了一些脏数据,如图:

我们如果想用json来将数据进行解析的话,就必须将这些脏数据去掉。

当然我们也可以用另一种方法来解决这个问题,就是将数据转化成字符串的形式,然后用正则表达式将目标数据提取出来。代码如下:

daimas = re.findall('"f12":(.*?),',response.text)
names = re.findall('"f14":"(.*?)"',response.text)
zuixinjias = re.findall('"f2":(.*?),',response.text)
zhangdiefus = re.findall('"f3":(.*?),',response.text)
zhangdiees = re.findall('"f4":(.*?),',response.text)
chengjiaoliangs = re.findall('"f5":(.*?),',response.text)
chengjiaoes = re.findall('"f6":(.*?),',response.text)
zhenfus = re.findall('"f7":(.*?),',response.text)
zuigaos = re.findall('"f15":(.*?),',response.text)
zuidis = re.findall('"f16":(.*?),',response.text)
jinkais = re.findall('"f17":(.*?),',response.text)
zuoshous = re.findall('"f18":(.*?),',response.text)
liangbis = re.findall('"f10":(.*?),',response.text)
huanshoulvs = re.findall('"f8":(.*?),',response.text)
shiyinglvs = re.findall('"f9":(.*?),',response.text)

3.数据存储

在之前的文章中,我们关于数据存储的各种方式已经介绍的很清楚了,这里我们就不在过多介绍了,此次才用Excel文件来对数据进行存储,代码如下:

wb = openpyxl.Workbook()
sheet = wb.active
sheet['A1'] = '代码'
sheet['B1'] = '名称'
sheet['C1'] = '最新价'
sheet['D1'] = '涨跌幅'
sheet['E1'] = '涨跌额'
sheet['F1'] = '成交量'
sheet['G1'] = '成交额'
sheet['H1'] = '振幅'


for i in range(20):
   sheet.append([daimas[i],names[i],zuixinjias[i],zhangdiefus[i],zhangdiees[i],
                 chengjiaoliangs[i],chengjiaoes[i],zhenfus[i],zuigaos[i],zuidis[i],
                 jinkais[i],zuoshous[i],liangbis[i],huanshoulvs[i],shiyinglvs[i]])

让我们来看看最终效果:

总结

1. 本文详细的介绍了如何从东方财富网上批量获取股票数据,请读者仔细阅读,并加以操作。

2. 东方财富网没有反爬,但是本着友好的原则,用户在爬取时最好使用间隔爬取。

3. 本文仅供参考学习,不做商用。

4. 需要远吗,公众号回复【小助手】,找他获取,即可获取源代码。

Python爬虫实战(基础篇)—15获取东方财富网股票数据—写入csv(附完整代码) 阅读详情

相关推荐

爬虫:东方财富网股票数据爬取

前言 因为东方财富网的Js限制,第一页很好爬取,但是第二页开始的网页地址并没有改变,看了下xpath页面元素也和第一页没什么区别,所以只好曲线救国,用selenium找到“下一页”按钮进行跳转再爬取,好处是肯定都能爬到,坏处则是必须一直开着chromedriver,而且爬取效率并不高。 代码 from selenium import webdriver from time import sleep import mysql.connector as mysql '''爬取上证指数的所有股票信息,保存到本地

Cyber的博客 1万+

爬虫案例5——爬取东方财富网的港股数据

对爬虫的初步学习,包括定义URL,发送GET获取网页内容,分析网页内容,获取目标数据,保存数据,python代码

m0_66890670的博客 6399

嵩天《Python网络爬虫与信息提取》实例4:股票数据定向爬虫

爬取目标:通过东方财富网获取股票列表,借此构造链接从富途牛牛网获取个股信息并保存到本地列表中;相关库名:requests/re/json/csv

weixin_43095088的博客 5238

Python 网络爬虫笔记11 -- Scrapy 实战

Python 网络爬虫笔记11 – Scrapy 实战 Python 网络爬虫系列笔记是笔者在学习嵩天老师的《Python网络爬虫与信息提取》课程及笔者实践网络爬虫的笔记。 课程链接:Python网络爬虫与信息提取 参考文档: Requests 官方文档(英文) Requests 官方文档(中文) Beautiful Soup 官方文档 re 官方文档 Scrapy 官方文档(英文) Scrap...

Wang_Jiankun的博客 739

基于Spyder(Python 3.8)网络爬虫东方财经股票数据

基于Python爬取豆瓣电影排行榜单的博主经验,本文将爬取东方股票的某些数据。代码来自网络且基于此稍有改编。

weixin_55996541的博客 3539

简单爬虫:东方财富网股票数据爬取(20231230)

可以看到返回的文件中,data后为null,因此,在每个板块循环爬取时,只要碰到页码的返回文件中data的内容为null时,则停止爬取当前板块。同时由于返回文件中,data后的内容是以null变量的形式展示的,我们需要定义一个变量null,否则会出现报错NameError: name ‘null’ is not defined。查看网页源代码发现并没有目标数据,因此需要对网页进行抓包分析,查看哪个文件里包含目标数据,打开开发者模式(F12),找到目标文件。首先查看url,获取沪京深A股的第一页数据。

egekm_sefg的博客 2519

股票数据定向爬虫

修改了嵩天老师代码部分内容:①将网址中的https 换成 http,不修改的话程序不能爬取;②最好在getStockInfo()函数中,当count >= 50的时候就return, 因为截止到现在一共有4717( 你可以在main()函数中getStockList() 后边添加一句print(len(slist)) 得到股票总数 )个股票...运行完程序需要很长时间,我跑了两个多小时才50...

HHHHHHep的博客 747

Python爬虫实战:东方财富网股票行情数据全维度抓取与投资决策分析(反爬突破+数据建模+可视化)

本次实战的核心不是“写爬虫脚本”,而是“构建一套贴合实盘投资的股票数据抓取与分析体系”——从反爬突破保证数据获取的稳定性,到多维度分析挖掘数据的投资价值,最终落地到具体的选股、择时决策。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 3069

python爬虫之利用scrapy框架实现股票信息爬取

目标:获取上交所和深交所所有股票的名称和交易信息共四千条股票信息 输出:保存到文件BaiduStockInfo.text中去 技术路线:scrapy框架&&requests库&& BeautifulSoup库

weixin_42248302的博客 5511

Python爬虫实战:爬取东方财富网股票数据

本文将带领大家深入了解如何使用Python爬取东方财富网(Eastmoney.com)上的股票数据,使用现代化的技术栈,介绍如何高效抓取、清洗和存储股票信息。东方财富网作为一个著名的金融信息平台,提供了实时的股票数据、市场动态、财经新闻、股票分析等内容。本文介绍了如何使用Python爬取东方财富网的股票数据,涵盖了爬虫的基本原理、代码实现、数据存储以及反爬虫机制的应对。爬取的数据需要存储起来,便于后期分析和使用。爬取的数据可以用来进行进一步的分析,比如计算股票的涨跌幅、绘制股票价格的变化趋势图等。

2201_76125261的博客 1895

东方财富网的爬虫源案例

爬虫

python如何爬虫股票数据_简单爬虫:东方财富网股票数据爬取(python_017)

需求:将东方财富网行情中心的股票数据爬取下来,包括上证指数、深圳指数、上证A股、深圳A股、新股、中小板、创业板 等一、目标站点分析东方财富网的行情中心页面包含了所有股票信息。在左侧的菜单栏中包含了沪深个股、沪深指数等所有股票数据。每个板块的股票数据被隐藏在不同的菜单里。点击“沪深个股”按钮,对应的股票数据就被查询出来了。上方的选项卡中包含了不同板块的板块:沪深A股、上证A股、深证A股、新股、中小板...

weixin_39714528的博客 2309

DDR内存接口深度解析:从寻址机制到FPGA时序约束实战

在高速数字系统设计中,内存接口是决定系统性能与稳定性的关键。DDR(双倍数据速率)技术通过在时钟的上升沿和下降沿传输数据,实现了带宽的倍增,广泛应用于消费电子、通信设备和工控主板等领域。其核心原理在于利用三维存储阵列(Bank、Row、Column)的分级寻址机制,通过先进行行激活、再进行列访问的固定时序,实现高速数据吞吐。理解这一寻址顺序是进行精准时序分析的基础。在工程实践中,FPGA作为内存控制器,需通过严谨的时序约束(如set_input_delay)来确保信号在高速传输下的建立与保持时间要求,从而将

weixin_29192211的博客 198

Python程序设计思维练习---股票数据定向爬虫

本次练习是一个定向爬虫,爬取股票的相关数据,用到beautifulsoup,re,requests等库。 爬前分析:先分析比较不同网站提供的股票数据,在这里比较的是新浪股票和百度股票。因为百度股票的相关数据直接在html页面中爬取相对方便,而新浪股票的数据是通过js来传递的,获取比较麻烦,所以选择百度股票作为数据来源。 爬取流程:通过东方财富网得到上交所和深交所的所有股票代码,将股票代码依次...

Wayne_Dream的博客 468

【硬件设计】_基于STM32单片机的智能台灯系统

智能台灯系统是一款多功能的智能照明设备,能够自动调节亮度、监测人体活动、感知环境光照,并具备定时和报警功能,极大提升了用户体验与功能的灵活性,主要包括以下功能:系统提供自动和手动两种模式以调节台灯亮度。在自动模式下,台灯会根据周围光强智能调整;而在手动模式下,用户可通过按键自行设置亮度。利用红外光电开关检测台灯与用户之间的距离,若距离过近,系统将发出报警提示。通过时钟模块设置定时提醒,并在OLED显示屏上显示当前时间,当达到设定的定时时间时,蜂鸣器将发出报警音。

2401_85381181的博客 1736

SAP BO系统启用邮件发送功能

目录 背景 维护邮件目标 启用邮件功能 背景 为了将BO报表或BO预警信息发送给特定的收件人,需要启用SAP BO系统的邮件发送功能。 维护邮件目标 1. 登录BO系统的中央管理控制台(CMC): http://<bo server name>:<port>/BOE/CMC 2. 点击“Organize”底下的“Servers”按钮进入BO服务器界面: 3. 点击“Servers List”进入服务器列表界面,右键点击JobServer&lt.

guowenming001的博客 1963

爬虫练习(四)

利用requests + bs4 + re库进行股票数据定向爬虫import requests from bs4 import BeautifulSoup import traceback import re #得到东方财富网的页面源代码 def getHTMLText(url, code = 'utf-8'): try: r = requests.get(url, ti...

weixin_40896352的博客 3292

【大模型】大模型知识蒸馏 综述解读(Knowledge Distillation of Large Language Models)

知识蒸馏的(论文)方法总结。归纳了通过数据(如指令、对话、多模态)和训练方法(SFT、RL、数据增强),将复杂技能(如对齐、工具使用、多模态)蒸馏到开源模型的核心框架,附典型模型示例(如Alpaca、LLaVA)。

songxia928_928的博客 4340

爬取东方财富网数据笔记

小白是如何学习爬虫的?首先先从简单的入手,在b站上寻找爬虫视频,这里推荐Python爬虫编程基础5天速成(2021全新合集)Python入门+数据分析_哔哩哔哩_bilibili 有编程基础的仅需要观看其中部分爬虫视频即可,如果没有编程基础可以自行观看完整视频。这里的爬虫讲解以豆瓣电影Top250的信息爬取为主,所以通过学习如何爬取豆瓣电影信息为基础,在此基础上摸索爬取东方财富网的信息数据。(爬取豆瓣的代码,在视频中有非常完整的讲解) 下面首先爬取了东方财富网的Title 网址:平安银行...

m0_63151116的博客 1万+

达梦数据库导入报错:[警告]服务器与文件内数据的 CASE_SENSITIVE 参数不匹配,成功终止导入, 但出现警告dimp V8,本地编码:PG_GBK, 导入文件编码:PG_UTF8

达梦数据库管理系统的最新版本是8.0版本,简称DM8。DM8采用全新的体系架构,在保证大型通用的基础上,针对可靠性、高性能、海量数据处理和安全性做了大量的研发和改进工作,极大提升了达梦数据库产品的性能、可靠性、可扩展性,能同时兼顾OLTP和OLAP请求,从根本上提升了DM8产品的品质。达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM。[警告]服务器与文件内数据的 CASE_SENSITIVE 参数不匹配,成功终止导入, 但出现警告。4.无视警告,输入y,回车。

十三月的博客 1万+

Qt入门教程【Core篇】singal and slot信号与槽

Qt中信号与槽singal and slot

小鱼酱的博客 2451

Python爬取东方财富网任意股票任意时间段的Ajax动态加载股票数据

可以发现,源码中并没有我们想要的股票数据,但是再网页中又有我们想要的收盘价等数据,说明这很可能数据是Ajax动态加载出来的,一般而言数据会存储再一个json文件之中。点击进去可以发现里面都有大量的数据,这些数据也是网页所显示的数据来源,根据不同的数据需求,选择某一个url进行数据提取,接下来的数据提取以第二个URL为例,即。最近由于需求想爬取以下东方财富网的股票数据,但是发现没有想象那么简单,接下来我会讲述一下我遇到的问题以及是如何解决,最后成功的爬出了想要的数据。,再选择右边弹出来的。

weixin_58732037的博客 8725

嵌入式工程师必学(118):MCU的硬件定时器和中断

大多数微处理器都有一个或多个可编程硬件定时器,这些定时器包括对中断的支持。可以有不同类型的计时器,用于不同的应用程序。例如,LPC1768 具有四个 32 位通用定时器、一个看门狗定时器、一个重复中断定时器、一个系统滴答定时器、一个正交编码器接口、6 个 PWM 输出和一个支持中断的实时时钟。硬件定时器用于计时和计数作,允许处理器在 timer 进程运行时继续执行其他进程。硬件定时器是一种使用 clock 信号来增加 register 的电路。

码农17年的博客 211
上一篇: 毕业三年学Python,发现搞数据分析的,跳槽越来越难了
下一篇: 谷歌自动驾驶之父看了都打Call,无人车成功挑战上海路况,连续5小时不接管!...
菜鸟学Python
博客等级 码龄9年 8089粉丝 571原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值