Xunlei API 一括ダウンロード Juchao 年次報告書

説明する

まず、タコを使用して Juchao ページからアナウンス リンク リストをクロールしますが、リンクはそのページを指しており、ダウンロード ボタンがあり、詳細ページのダウンロードからリンクを直接抽出することはできず、リンク間の関係は、直接変更することができます。
ダウンロード パスを個別に保存する方法: Python を使用してバッチ ダウンロードする方法 - Python を使用して Xunlei を呼び出し、バックグラウンドでバッチ ダウンロードを実現します。Xunlei ではまだダウンロードの問題が発生するため
、手動で保存を確認するのは少し不便です。
速度が 0 なので、Python を使用してダウンロードを補います。マルチスレッドがないため、少し遅くなります
(メッセージ 70 件) Python が Juchao PDF 年次報告書をバッチでダウンロードします_Invincible 前任者のブログ - CSDN ブログ
Thunder と通常のスクリプトの両方が遭遇しますクローラー対策メカニズムとリクエストの拒否:
(メッセージ 73 件) Python による年次報告書のバッチ ダウンロード (爬虫類対策バージョン
)

アニュアルレポートの審査プロセス

1. 略語順: "Text Contains" ST
2. タイトル順:
(1) 概要、中止
(2) 英語版
(3) About、お知らせ、H Share
3. コード昇順、時間降順で並べ替え:
(1)まず、前年の更新レポートを前年のファイルに入れます (最新年から処理を開始します)
(2) 次に、重複を排除して最新の年次レポートを保持します (前の小さなステップの後である必要があります)
(3) B シェアの年次レポートを除外しますコードによって

コード

from win32com.client import Dispatch
#pip install win32compat
#pip install pywin32
import os
import re
import openpyxl
import time
def xunlei(url, downpath,filename):
    #运行之前记得在迅雷的设置中心勾选“一键下载”,不然会有弹框确认是否建立下载任务。
    #filename = url.split('/')[-1]
    thunder = Dispatch('ThunderAgent.Agent64.1')
    #thunder = Dispatch("ThunderAgent.Agent.1")
    thunder.AddTask(url, filename, downpath, "", "", -1, 0, 5)
    #thunder.AddTask(url)
    # AddTask("下载地址", "另存文件名", "保存目录","任务注释","引用地址","开始模式", "只从原始地址下载","从原始地址下载线程数")
    thunder.CommitTasks()
    time.sleep(0.05)
def code_revise(code_cell):
    code=(code_cell.value)
    code=str(code)
    #用value就是数值,text不能用
    for i in range(1,6-len(code)+1):
        code='0'+code
    return code
def url_revise(url):
    #普通命令str.replace(old, new[, max])
    #old --将被替换的子字符串。.new --新字符串,用于替换old子字符串。max --可选字符串,替换不超过max次
    #re.sub(pattern, repl, string, count=0, flags=0)
    #参数含义依次为旧字符正则匹配式、新子串、原文、次数默认全部替换
    #print("url1:" + url)
    old1=re.compile(r'disclosure/detail\?stockCode=\d+&announcementId')
    old2=re.compile(r'orgId=\w+\d+&announcementTime')
    new1='announcement/download?bulletinId'
    new2='announceTime'
    url=re.sub(old1,new1,url)
    url = re.sub(old2, new2, url)
    #print("url2:"+url)
    return url
input= r'E:\huang\Documents'
os.chdir(input)
downpath=r'E:\Alark\Users\Desktop\年报'
downlist='2015-2016年其他行业.xlsx'
wb = openpyxl.load_workbook(downlist)
ws = wb.active
#active_sheet = wb.active
for row in ws.rows:
    if row[0].value==None:
        #print("row[0]:",row[0].value)
        break
    else:
        pass
        #print(code_revise(row[0]),row[2].value)
    filename=code_revise(row[0])+'_'+row[2].value+'.pdf'
    url=url_revise(row[4].value)
    xunlei(url, downpath, filename)
wb.save("cache.xlsx")


おすすめ

転載: blog.csdn.net/qq_37639139/article/details/124168844