# -*- coding: utf-8 -*-
"""
Created on Tue May 15 15:02:31 2018
@author: Mr6
"""
import requests as rs
import json as js
import random
#get_data_main 获取东财的主要财务数据
#get_data_zcfzb 获取东财的资产负债表
#get_data_lrb 获取东财的利润表
#get_data_xjllb 获取东财的现金流量表
#insert_data 将数据插入数据库
#datatype=0 按报告期 datatype=1 按年度 datatype=2 按季度
USER_AGENTS = [
# "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
# "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)",
# "Mozilla/4.0 (compatible; MSIE 7.0; AOL 9.5; AOLBuild 4337.35; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
# "Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)",
# "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)",
# "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)",
# "Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)",
# "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)",
# "Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6",
# "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1",
# "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0",
# "Mozilla/5.0 (X11; Linux i686; U;) Gecko/20070322 Kazehakase/0.4.5",
# "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko Fedora/1.9.0.8-1.fc10 Kazehakase/0.5.6",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.20 (KHTML, like Gecko) Chrome/19.0.1036.7 Safari/535.20",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
# "Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; fr) Presto/2.9.168 Version/11.52",
]
def get_data_main(datatype,stockcode):
url="http://emweb.securities.eastmoney.com/PC_HSF10/NewFinanceAnalysis/MainTargetAjax?ctype=4&type=%s&code=%s" %(datatype ,stockcode)
return js.loads(rs.get(url).text)
#按报告期 ReportDateType=0,ReportType=1
#按年度 ReportDateType=1,ReportType=1
#单季度 ReportDateType=0,ReportType=2
def get_data_zcfzb(companyType,reportDateType,reportType,endDate,stockcode,f):
url="http://emweb.securities.eastmoney.com/PC_HSF10/NewFinanceAnalysis/zcfzbAjax?companyType=%s&reportDateType=%s&reportType=%s&endDate=%s&code=%s" %(companyType,reportDateType,reportType,endDate,stockcode)
# headers = {'User-Agent': 'User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'}
headers = {'User-Agent': 'User-Agent:%s' %random.sample(USER_AGENTS,1)}
a=rs.get(url,headers=headers).text
# a=rs.get(url).text
vdicts={}
try:
vdicts=js.loads(js.loads(a))
except Exception as e:
f.write(str(e))
f.write("\n")
f.write(str(a))
f.flush()
return vdicts
def get_data_lrb(companyType,reportDateType,reportType,endDate,stockcode,f):
url="http://emweb.securities.eastmoney.com/PC_HSF10/NewFinanceAnalysis/lrbAjax?companyType=%s&reportDateType=%s&reportType=%s&endDate=%s&code=%s" %(companyType,reportDateType,reportType,endDate,stockcode)
# a=rs.get(url).text
headers = {'User-Agent': 'User-Agent:%s' %random.sample(USER_AGENTS,1)}
a=rs.get(url,headers=headers).text
vdicts={}
try:
vdicts=js.loads(js.loads(a))
except Exception as e:
f.write(str(e))
f.write("\n")
f.write(str(a))
f.flush()
return vdicts
def get_data_xjllb(companyType,reportDateType,reportType,endDate,stockcode,f):
url="http://emweb.securities.eastmoney.com/PC_HSF10/NewFinanceAnalysis/xjllbAjax?companyType=%s&reportDateType=%s&reportType=%s&endDate=%s&code=%s" %(companyType,reportDateType,reportType,endDate,stockcode)
# a=rs.get(url).text
headers = {'User-Agent': 'User-Agent:%s' %random.sample(USER_AGENTS,1)}
a=rs.get(url,headers=headers).text
vdicts={}
try:
vdicts=js.loads(js.loads(a))
except Exception as e:
f.write(str(e))
f.write("\n")
f.write(str(a))
f.flush()
return vdicts
def get_data_bfbbb_lr(stockcode,companyType,datatype,f):
url="http://emweb.securities.eastmoney.com/PC_HSF10/NewFinanceAnalysis/PercentAjax?code=%s&ctype=%s&type=%s" %(stockcode,companyType,datatype)
# a=rs.get(url).text
headers = {'User-Agent': 'User-Agent:%s' %random.sample(USER_AGENTS,1)}
a=rs.get(url,headers=headers).text
vdicts={}
dicts=[]
i= '0' if companyType=='4' else companyType
try:
vdicts = js.loads(a)
dicts = vdicts['Result']['lr%s'%i]
except Exception as e:
f.write(str(e))
f.write("\n")
f.write(str(a))
f.flush()
return dicts
def get_data_bfbbb_zb(stockcode,companyType,datatype,f):
url="http://emweb.securities.eastmoney.com/PC_HSF10/NewFinanceAnalysis/PercentAjax?code=%s&ctype=%s&type=%s" %(stockcode,companyType,datatype)
# a=rs.get(url).text
headers = {'User-Agent': 'User-Agent:%s' %random.sample(USER_AGENTS,1)}
a=rs.get(url,headers=headers).text
vdicts={}
zbdicts={}
try:
vdicts=js.loads(a)
zbdicts=vdicts['Result']['zb']
except Exception as e:
f.write(str(e))
f.write("\n")
f.write(str(a))
f.flush()
return zbdicts
def get_StockCode(cursor,conn):
sqlstr ="select stockcode,companyType from codelist"
# sqlstr ="select stockcode,companyType from codelist where id in (8,1451,937,28,952)"
# sqlstr = "select stockcode,companyType from codelist where id =613"
try:
cursor.execute(sqlstr)
except Exception as e:
print('Error:', e)
conn.close()
return cursor.fetchall()
def insert_onedata(datatype,stockcode,dicts,tablename,cursor,conn,f):
str1='stockcode,'
str2="'%s'," %stockcode
for key,num in dicts.items():
str1+="%s," %key
str2+="'%s'," %num
str1+="datatype"
str2+="'%s'" %datatype
sqlstr="insert into %s(%s) values (%s)" %(tablename,str1,str2)
try:
cursor.execute(sqlstr)
except Exception as e:
conn.close()
f.write("datatype = %s , stockcode = %s\n error: %s\n" %(datatype,stockcode,str(e)))
f.write("%s\n\n" %sqlstr)
f.flush()
pass
conn.commit()
def insert_data(datatype,stockcode,dicts,tablename,cursor,conn,f):
i=0
while i <len(dicts):
str1='stockcode,'
str2="'%s'," %stockcode
for key,num in dicts[i].items():
str1+="%s," %key
str2+="'%s'," %num
str1+="datatype"
str2+="'%s'" %datatype
sqlstr="insert i
python 获取东财财务数据代码
需积分: 31 15 浏览量
2018-07-05
00:46:50
上传
评论 1
收藏 6KB ZIP 举报
heavenpoppy
- 粉丝: 1
- 资源: 3
最新资源
- AIS2024 valid
- 最入门的爬虫代码 python.docx
- 爬虫零基础入门-爬取天气预报.pdf
- 最通俗易懂的 MongoDB 非结构化文档存储数据库教程.zip
- 以mongodb为数据库的订单物流小项目.zip
- 腾讯云-mongodb数据库, 项目部署.zip
- 腾讯 APIJSON 的 MongoDB 数据库插件.zip
- 理解非关系型数据库和关系型数据库的区别.zip
- 操作简单的Mongodb网页web管理工具,基于Spring Boot2.0支持mongodb集群.zip
- tms-mongodb-web,提供访问mongodb数据的REST API和可灵活扩展的mongodb web 客户端.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈