目錄
前置:
步驟:
step one?安裝包
step two?獲取股票代碼
step three?敲代碼,實現?
step four?網址轉pdf網址
視頻
前置:
1 本系列將以 “PyQt6實例_批量下載pdf工具”開頭,放在 【PyQt6實例】 專欄
2 本節講述“批量pdf網址獲取”沒有涉及到PyQt6的知識點,是“批量下載pdf工具”的一個步驟
3 “批量下載pdf工具”實例是以下載巨潮pdf文件為使用場景,所以pdf網址獲取來自巨潮
4 本系列后續會在B站錄制視頻,到時會在文末貼出鏈接。本人還是建議先看博文,不懂的再看視頻,這樣效率高,節約時間。
步驟:
step one?安裝包
1 新建項目,創建虛擬環境
2?安裝包 pip install akshare
step two?獲取股票代碼
打開通達信-》行情-》A股-》按“34”回車
?
取代碼這一列,存儲到txt文件中
step three?敲代碼,實現?
import akshare as ak
from concurrent.futures import ThreadPoolExecutor
from datetime import datetime# {'年報', '半年報', '一季報', '三季報', '業績預告', '權益分派',
# '董事會', '監事會', '股東大會', '日常經營', '公司治理', '中介報告',
# '首發', '增發', '股權激勵', '配股', '解禁', '公司債', '可轉債', '其他融資',
# '股權變動', '補充更正', '澄清致歉', '風險提示', '特別處理和退市', '退市整理期'}
def req_from_ak(thread_num:int,stock_ticker_list:list):category_str = '權益分派'end_date_str = '20250329'pre_dir = r'E:/temp003/'print(f'thread {thread_num} start.')for symbol_str in stock_ticker_list:try:df = ak.stock_zh_a_disclosure_report_cninfo(symbol=symbol_str, market="滬深京",category=category_str,start_date="20000101",end_date=end_date_str)df.to_excel(pre_dir+symbol_str+'.xlsx',engine='openpyxl')except:print(symbol_str)print(f'thread {thread_num} execute end. {datetime.now().strftime("%Y-%m-%d %H:%M:%s")}')passdef start_execute():with open('./stock_ticker.txt',mode='r',encoding='utf-8') as fr:contents = fr.read()stock_ticker_list = contents.split('\n')print(len(stock_ticker_list))thread_count = 5interval = len(stock_ticker_list)//thread_countif interval == 0:thread_count = 1params_list = []thread_num_list = []for i in range(0,thread_count):if i == thread_count-1:pre_list = stock_ticker_list[i*interval:]else:pre_list = stock_ticker_list[i*interval:i*interval+interval]thread_num_list.append(i)params_list.append(pre_list)with ThreadPoolExecutor() as executor:executor.map(req_from_ak, thread_num_list,params_list)print('線程池任務分配完畢')passif __name__ == '__main__':start_execute()pass
使用多線程,獲取得快些
公告鏈接是要使用的。?
step four?網址轉pdf網址
import os
import pandas as pddef trans_url_to_pdfurl():pre_dir = r'E:/temp003/'tar_dir = r'E:/temp005/'file_list = os.listdir(pre_dir)for file_one in file_list:ticker = file_one[0:6]pre_file_path = pre_dir + file_onedf = pd.read_excel(pre_file_path,engine='openpyxl')url_list = df['公告鏈接'].to_list()pdf_url_list = []for u_one in url_list:u_one_00 = u_one.split('&')node_00 = u_one_00[1].replace('announcementId=','')node_01 = u_one_00[-1].replace('announcementTime=','')node_01 = node_01[0:10]tar_node = f'http://static.cninfo.com.cn/finalpage/{node_01}/{node_00}.PDF'pdf_url_list.append(tar_node)passpdf_url_list_str = '\n'.join(pdf_url_list)with open(f'{tar_dir}/{ticker}.txt', mode='w', encoding='utf-8') as fw:fw.write(pdf_url_list_str)passpassif __name__ == '__main__':trans_url_to_pdfurl()pass
至此,批量下載pdf工具?用于下載的pdf網址就準備好了。
視頻
https://www.bilibili.com/video/BV1ASZwYhEGn/
https://www.bilibili.com/video/BV1oEZwYDE6N/
https://www.bilibili.com/video/BV1wuZwYZEJe/
https://www.bilibili.com/video/BV1XtZwYyEo4/