Xunlei API descarga por lotes Juchao informe anual

ilustrar

Primero, use octopus para rastrear la lista de enlaces de anuncios desde la página de Juchao, pero el enlace apunta a la página y hay un botón de descarga y el enlace no se puede extraer directamente de la descarga en la página de detalles, y la relación entre los enlaces puede modificarse directamente.
Una forma de guardar la ruta de descarga por separado: Cómo usar python para la descarga por lotes: use Python para llamar a Xunlei para realizar la descarga por lotes en segundo plano.
Todavía es un poco inconveniente confirmar manualmente el guardado,
porque Xunlei todavía encuentra el problema de la descarga. la velocidad es 0, así que use python para complementar la descarga, porque no hay subprocesos múltiples, por lo que será un poco lento (70 mensajes
) Python descarga los informes anuales en PDF de Juchao en lotes_Blog del predecesor invencible-blog CSDN Tanto
Thunder como los scripts ordinarios mecanismos anti-crawler y solicitudes de rechazo:
(73 mensajes) Informes anuales de descargas por lotes de Python (versión de respuesta anti-reptil
)

Proceso de selección del informe anual

1. Por abreviatura: "El texto contiene" ST
2. Por título:
(1) Resumen, Cancelado
(2) Versión en inglés
(3) Acerca de, Anuncio, H Compartir
3. Ordenar por código en orden ascendente, tiempo en orden descendente:
(1) Primero, coloque el informe de actualización del año anterior en el archivo del año anterior (comience a procesar desde el último año)
(2) Luego, elimine los duplicados y conserve el último informe anual (debe ser posterior al pequeño paso anterior)
(3) Excluya el informe anual de acciones B por código

el código

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")


Supongo que te gusta

Origin blog.csdn.net/qq_37639139/article/details/124168844
Recomendado
Clasificación