重磅----自动采集下载东方财富pdf研报,附程序
优采云 发布时间: 2022-06-01 12:51重磅----自动采集下载东方财富pdf研报,附程序
运行效果,我已经将他们分类。
我们继续介绍东方财富研报的获取,我这个程序只是基础的获取个股研报,后面我会结合官网进行分类,不同的行业,评价等,这个项目很大,写完了可以分享,将它开源,我们打开东方财富官网,进入个股研报。我们可以看到它的分类很多
我们看一下需要解析的数据。这个程序本身很复杂,我建议先学习基础的,在研究这个,中等水平就可以了。
数据很复杂,解析也比较难,我们通过解析数据,组合出研报的pdf链接,链接为下面的代码,链接是组合出来的
pdf_url='https://pdf.dfcfw.com/pdf/H3_{}_1.pdf?{}.pdf'.format(infoCode,encodeurl)
运行的效果,输入要下载的大小比如30
运行的效果。存在的不会在采集
下载的pdf文件
我们打开一个文件
我们直接看代码,学习代码,因为这个比较复杂,我一下也说不清楚,最近比较忙,以后有空了写一篇文章仔细介绍。
import pandas as pdfrom bs4 import BeautifulSoupfrom xml import etreeimport jsonimport jsonpathfrom fpdf import FPDFimport requestsimport osimport timeimport PySimpleGUI as sg#东方财富研报个股采集#检测主文件夹,在桌面main_name='东方财富'main_list=os.listdir(r'C:\Users\Administrator\Desktop')if main_name in main_list: print('{}文件夹已经存在'.format(main_name)) #建立文件夹else: os.makedirs(r'C:\Users\Administrator\Desktop\{}'.format(main_name))#采集不分类的研报def no_list_report_pdf(): page=sg.popup_get_text('输入要下载数据大小比如30') url='https://reportapi.eastmoney.com/report/list?' #自动填充时间,获取最新的研报 locatime=time.localtime() year=locatime.tm_year mo=locatime.tm_mon daily=locatime.tm_mday h=locatime.tm_hour start_date='{}-{}-{}'.format(year,mo,daily) end_date='{}-{}-{}'.format(year,mo,daily) params={ 'cb':'datatable1335389', 'industryCode':'*', 'pageSize':page, 'industry':'*', 'rating':'*', 'ratingChange':'*', 'beginTime':start_date, 'endTime':end_date, 'pageNo':'1', 'fields':'', 'qType':'0', 'orgCode':'', 'code':'*', 'rcode':'', '_':'1653745465030' } res=requests.get(url=url,params=params) res_text=res.text[17:len(res.text)-1] json_text=json.loads(res_text) df_text=pd.DataFrame(json_text['data']) df=df_text wjj_name='个股研报' wjj_list=os.listdir(r'C:\Users\Administrator\Desktop\{}'.format(main_name)) if wjj_name in wjj_list: print('{}文件夹已经存在'.format(wjj_name)) #建立文件夹 else: os.makedirs(r'C:\Users\Administrator\Desktop\{}\{}'.format(main_name,wjj_name)) for title,stockname,infoCode,encodeUrl in zip(df['title'],df['stockName'],df['infoCode'],df['encodeUrl']): pdf_name=stockname+title+'.pdf' encodeurl=encodeUrl.split('=')[0] pdf_url='https://pdf.dfcfw.com/pdf/H3_{}_1.pdf?{}.pdf'.format(infoCode,encodeurl) #自动建立文件夹,先检测文件夹是否存在 pdf_request=requests.get(pdf_url) #建立pdf格式文档,因为有些电脑不需要 #检测文件是不是已经存在 path_name=os.listdir(r'C:\Users\Administrator\Desktop\{}\{}'.format(main_name,wjj_name)) if pdf_name in path_name: print('{}文件已经存在,不采集'.format(pdf_name)) else: pdf=FPDF() pdf.output(r'C:\Users\Administrator\Desktop\{}\{}\{}'.format(main_name,wjj_name,pdf_name)) #读取pdf with open(r'C:\Users\Administrator\Desktop\{}\{}\{}'.format(main_name,wjj_name,pdf_name),'wb') as f: f.write(pdf_request.content) print(pdf_name,'下载完成')no_list_report_pdf()<br />