IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 爬虫:爬东方财富网股票数据 -> 正文阅读

[大数据]爬虫:爬东方财富网股票数据

作者:recommend-item-box type_blog clearfix

1.页面分析

? ? ? ?此次我们获取数据的网站是东方财富网!首先我们按F12打开开发者模式,对name里面的网页进行观察,找到数据存在的网页,发现数据是以jQuery加载进网页的,每次加载20个数据,如图:

?

? ? ? 至此我们找到了单页网页的数据及地址,接下来我们继续打开第二页,找到每页之间的关系,整理后我们发现第一页的pn值等于1,第二页的pn值等于2:

?所以我们构建URL时,只需用for循环让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、获取数据

在上面对网页进行分析时,我们感觉这个网页存储数据是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]])

?

?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-21 12:15:18  更:2021-10-21 12:15:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:31:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码