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

python对于会计核算_利用Python处理东方财富企业财务数据

0.背景

由于工作需要,最近在研究如何从东方财富网页爬取股东增持数据。

1.分析网页请求

打开网页,选择某数据右键查看元素,可以查看该数据在加载后的网页中的位置。

F12打开开发者工具,打开网页查看页面请求,可以发现网页发送了多个请求,请求到的文件包括html、css、js、png等,如下图所示。

网页主框架通过html请求加载,数据不在其中。数据是通过js单独加载的。

2.方案介绍

【方案一】

BeautifulSoup解析网页文件。

将网页保存在本地,python读取后用BeautifulSoup解析获得页面数据。

【方案二】

selenium、PhantomJS、BeautifulSoup组合,通过模拟浏览器打开对应网页后用BeautifulSoup进行解析。

from selenium import webdriver

driver = webdriver.PhantomJS()

jzc_html = "http://datainterface3.eastmoney.com/EM_DataCenter_V3/api/GDZC/GetGDZC?tkn=eastmoney&cfg=gdzc&secucode=&fx=1&sharehdname=&pageSize=50&pageNum=1&sortFields=BDJZ&sortDirec=1&startDate=2017-11-29&endDate=2017-11-30"

driver.get(jzc_html)

web_soup = BeautifulSoup(driver.page_source, "lxml")

print web_soup.prettify()

【方案三】

前两种方案对于获取当前页面数据还算比较有效,但对第二页数据的获取则束手无策。点击第二页发现网页只发送了一个请求数据的request,这就是数据接口啊。

http://data.eastmoney.com/DataCenter_V3/gdzjc.ashx?pagesize=50&page=2&js=var iTHPTzxw&param=&sortRule=-1&sortType=BDJZ&tabid=jzc&code=&name=&rt=50406968

用浏览器请求该网页,发现返回值中包含了请求的数据和真实的数据接口。

"url":"http://datainterface3.eastmoney.com/EM_DataCenter_V3/api/GDZC/GetGDZC?tkn=eastmoney&cfg=gdzc&secucode=&fx=1&sharehdname=&pageSize=50&pageNum=2&sortFields=BDJZ&sortDirec=1&startDate=&endDate="

用浏览器请求该接口,正是我们需要的数据,用|分割。pageSize=50表每页50条数据,pageNum=2表示当前请求的是第二页。其他字段容易理解。

既然找到了数据接口,那就可以用urllib来请求,将响应的数据解析为json格式。

import urllib2

jzc_html = "http://datainterface3.eastmoney.com/EM_DataCenter_V3/api/GDZC/GetGDZC?" \

"tkn=eastmoney&cfg=gdzc&secucode=&sharehdname=&pageSize=200&pageNum=1&sortFields=NOTICEDATE&sortDirec=1" \

"&fx=2"\

"&startDate="+start_data+"&endDate="+end_data

request = urllib2.Request(jzc_html)

response = urllib2.urlopen(request)

body = json.loads(response.read())

相关文章:

  • python绘制折线图保存_利用python向excel文件写数据并绘制折线图
  • linux nginx vue_【Devops】Linux服务器上搭建持续集成环境及实战体验
  • 广州python工程师工资怎么样_没有编程基础,该如何成为月薪2万的Python工程师?...
  • c判断字符串是不是数字_C语言字符串与整数之间的转换,小白必会知识
  • 箭头函数转化为普通函数_理解 JavaScript 箭头函数
  • python抖音涨粉代码_python制作抖音代码舞
  • python中pow_pow在python中指的是什么意思
  • 80端口被占用 nt kernel iis_IIS维护分享
  • 对多用户分时系统最重要_新建网站如何做网络推广?最有效方法是什么?
  • c++ 如何将输入的内容输出到文本文件 要建立文本文件嘛_利用FSO对象读取文本文件的信息...
  • 简单实现x的n次方pta_TF2.0实现DeepFM并部署
  • 基于python的图像处理的毕业论文_基于Python的人脸识别系统研究.docx
  • python图形编程复选按钮和单选按钮详细说明_python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例...
  • 用python做一张图片_用Python实现将一张图片分成9宫格的示例
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • $translatePartialLoader加载失败及解决方式
  • android图片蒙层
  • crontab执行失败的多种原因
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • java 多线程基础, 我觉得还是有必要看看的
  • Java程序员幽默爆笑锦集
  • JS+CSS实现数字滚动
  • Kibana配置logstash,报表一体化
  • Lsb图片隐写
  • Mysql5.6主从复制
  • PHP变量
  • React中的“虫洞”——Context
  • 产品三维模型在线预览
  • 从PHP迁移至Golang - 基础篇
  • 番外篇1:在Windows环境下安装JDK
  • 排序(1):冒泡排序
  • 深入浅出webpack学习(1)--核心概念
  • 小李飞刀:SQL题目刷起来!
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • 阿里云ACE认证之理解CDN技术
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • #前后端分离# 头条发布系统
  • (003)SlickEdit Unity的补全
  • (C语言)fread与fwrite详解
  • (done) 两个矩阵 “相似” 是什么意思?
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (论文阅读11/100)Fast R-CNN
  • (南京观海微电子)——COF介绍
  • (转) 深度模型优化性能 调参
  • (转)程序员技术练级攻略
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .naturalWidth 和naturalHeight属性,
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • .net项目IIS、VS 附加进程调试
  • .Net中ListT 泛型转成DataTable、DataSet
  • .pyc文件是什么?
  • ??如何把JavaScript脚本中的参数传到java代码段中