参考文章以及视频:(11条消息) 爬虫实战 | 爬取东方财富网股票数据_简说Python的博客-CSDN博客、手把手教你从东方财富网上获取股票数据_哔哩哔哩_bilibili、【Python爬虫案例】如何用Python爬取股市数据,并进行数据可视化_哔哩哔哩_bilibili、python爬虫爬取豆瓣网评分最高的250部电影_哔哩哔哩_bilibili

分为3个步骤:

1. 爬取网页
2.逐一解析数据
3. 保存网页

1. 爬取网页

打开网站,找到需要的数据。

行情中心:国内快捷全面的股票、基金、期货、美股、港股、外汇、黄金、债券行情系统_东方财富网 (eastmoney.com)

按F12进入开发者模式,选择网络,再刷新页面后找到数据存放的位置。

开始构建requests(可以通过Convert curl command syntax to Python requests, Ansible URI, browser fetch, MATLAB, Node.js, R, PHP, Strest, Go, Dart, Java, JSON, Elixir, and Rust code网站快速生成)

import requestscookies = {'qgqp_b_id': '02d480cce140d4a420a0df6b307a945c','cowCookie': 'true','em_hq_fls': 'js','intellpositionL': '1168.61px','HAList': 'a-sz-300059-%u4E1C%u65B9%u8D22%u5BCC%2Ca-sz-000001-%u5E73%u5B89%u94F6%u884C','st_si': '07441051579204','st_asi': 'delete','st_pvi': '34234318767565','st_sp': '2021-09-28%2010%3A43%3A13','st_inirUrl': 'http%3A%2F%2Fdata.eastmoney.com%2F','st_sn': '31','st_psi': '20211020210419860-113300300813-5631892871','intellpositionT': '1007.88px',
}headers = {'Connection': 'keep-alive','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36 Edg/94.0.992.50','DNT': '1','Accept': '*/*','Referer': 'http://quote.eastmoney.com/','Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
}params = (('cb', 'jQuery112404825022376475756_1634735261901'),('pn', '1'),('pz', '20'),('po', '1'),('np', '1'),('ut', 'bd1d9ddb04089700cf9c27f6f7426281'),('fltt', '2'),('invt', '2'),('fid', 'f3'),('fs', 'm:0 t:6,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'),('_', '1634735261902'),
)response = requests.get('http://54.push2.eastmoney.com/api/qt/clist/get', headers=headers, params=params, cookies=cookies, verify=False)#NB. Original query string below. It seems impossible to parse and
#reproduce query strings 100% accurately so the one below is given
#in case the reproduced version is not "correct".
# response = requests.get('http://54.push2.eastmoney.com/api/qt/clist/get?cb=jQuery112404825022376475756_1634735261901&pn=1&pz=20&po=1&np=1&ut=bd1d9ddb04089700cf9c27f6f7426281&fltt=2&invt=2&fid=f3&fs=m:0+t:6,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&_=1634735261902', headers=headers, cookies=cookies, verify=False)

但是这样只能得到第一页的数据,通过分析可得,params中的pn代表每一页的页号,所以需要写一个for循环来获得每一页的数据。

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.逐一解析数据

由于数据存储时多出来了前面这一段数据,所以将数据转化为字符串,然后用正则表达式将需要的数据提取出来。

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文件中

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]])wb = openpyxl.Workbook()sheet = wb.activesheet['A1'] = '代码'sheet['B1'] = '名称'sheet['C1'] = '最新价'sheet['D1'] = '涨跌幅'sheet['E1'] = '涨跌额'sheet['F1'] = '成交量'sheet['G1'] = '成交额'sheet['H1'] = '振幅'sheet['I1'] = '最高'sheet['J1'] = '最低'sheet['K1'] = '今开'sheet['L1'] = '昨收'sheet['M1'] = '量比'sheet['N1'] = '换手率'sheet['O1'] = '市盈率'main()wb.save('股票数据.xlsx')

爬虫学习笔记(用python爬取东方财富网实验)相关推荐

  1. python爬虫学习笔记分析Ajax爬取果壳网文章

    有时在使用requests抓取页面会遇到得到的结果与在浏览器 中看到的结果不一样,在浏览器检查元素中可以看到的正常的显示的网页数据,但是requests请求得到的结果却没有.这是因为requests请 ...

  2. 利用python爬取东方财富网股吧评论并进行情感分析(一)

    利用python爬取东方财富网股吧评论(一) python-东方财富网贴吧文本数据爬取 分享一下写论文时爬数据用到的代码,有什么问题或者改善的建议的话小伙伴们一起评论区讨论.涉及内容在前人的研究基础之 ...

  3. python爬取东方财富网资金流向数据(在本地生成csv文件)

    今天我们来试着用python爬取东方财富网资金流向的表格数据. 第一步:程序及应用的准备 首先我们需要安装selenium库,使用命令pip install selenium;然后我们需要下载对应的c ...

  4. 使用python爬取东方财富网机构调研数据

    最近有一个需求,需要爬取东方财富网的机构调研数据.数据所在的网页地址为: 机构调研 网页如下所示: 可见数据共有8464页,此处不能直接使用scrapy爬虫进行爬取,因为点击下一页时,浏览器只是发起了 ...

  5. python爬取东方财富网中的资金流向表

    因为东方财富网中的资金流向表是一个动态的数据,所以采用selenium模块进行爬取. 爬取东方财富网的资金流向表的具体步骤: 1.获取初始的URL 2.爬取对应的URL地址的网页,获取新的URL地址 ...

  6. python培训机构调研最多的股票_使用python爬取东方财富网机构调研数据

    标签: 最近有一个需求,需要爬取东方财富网的机构调研数据.数据所在的网页地址为: 机构调研 网页如下所示: 可见数据共有8464页,此处不能直接使用scrapy爬虫进行爬取,因为点击下一页时,浏览器只 ...

  7. 用python爬取东方财富网网页信息_爬取东方财富网数据的网页分析

    自学Python已有3个月之多,浏览无数大神的佳作,收获颇丰.当初自学python就是为了学习爬虫,爬取网站上好看妹子的图片--[流口水][流口水] 言归正传,近期学习量化交易知识,发现东方财富网(e ...

  8. python爬小说一本一本爬_【学习笔记】Python爬取某一本小说

    本帖最后由 流浪的二胡 于 2018-10-23 20:19 编辑 最近刀剑神域第三季真的不错,无奈动画一周才更新一次,索性就想先把原著小说看了解解馋. 于是就找到了这个小说网站:http://www ...

  9. #python学习笔记#使用python爬取网站数据并保存到数据库

    上篇说到如何使用python通过提取网页元素抓取网站数据并导出到excel中,今天就来说说如何通过获取json爬取数据并且保存到mysql数据库中. 本文主要涉及到三个知识点: 1.通过抓包工具获取网 ...

最新文章

  1. 从落后的传统WAN转向SD-WAN—Vecloud
  2. SuperMap webGIS 简易提示框示例
  3. SQLServer转义问题
  4. 【数据结构与算法】二维Kd树的Java实现
  5. Python url中提取域名(获取域名、获取顶级域名、tldextract)
  6. Raid 原理及创建软raid
  7. Feign 简介与使用入门,请求、响应压缩,日志记录
  8. C++编写的常用软件(找找方向)
  9. Windows 上C++ new/detele如何知道内存大小
  10. 安装红蜘蛛软件6.2教师机管理端后,无法显示学生机的解决方法
  11. 活跃用户怎么理解?活跃用户的数据怎么看?
  12. 如何在功能、特点、价格和性能方面选择PDF编辑器?
  13. Linux---shell---猜数字游戏
  14. 大咖集结,共创生态|AIOps社区专家团正式集结出道
  15. 淘宝API接口,获取数据
  16. 物联网大学生就业培训有哪些?物联网工程师培训机构靠谱吗?
  17. 彩云碧海蓝天Mac高清动态桌面壁纸
  18. 锐捷交换机RLDP技术
  19. IT行业是否存在性别歧视?其实大家都误会了!
  20. [jlink-ob] 解决The connected J-Link is defective提示框和仿真的问题

热门文章

  1. SpringBoot word文件转pdf
  2. 打电话降噪蓝牙耳机推荐,适合通勤使用的降噪蓝牙耳机分享
  3. SaaS平台产品架构设计
  4. 如何在jupyter notebook 中修改主题、字体、字号等
  5. yaml及使用PyYaml操作yaml文件详解
  6. 项目管理-计算专题(挣值分析)
  7. redis数据库(一)
  8. 在3D空间中绘制四边形
  9. 淘宝新店运营怎么选品?API接口助您高效选品
  10. 如何将音视频中的伴奏背景音乐和人声分离?