巨潮PDF年报下载01——python request库

该博客介绍了如何使用Python结合迅雷API批量下载巨潮网的年报文件。通过win32com模块处理Excel,利用openpyxl读取工作簿,然后对URL进行修订以获取下载链接,最后使用urllib和requests库进行文件下载。代码涉及文件路径处理、正则表达式、HTTP请求等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录标题

背景

(70条消息) 迅雷API批量下载巨潮年报_无敌的前任的博客-CSDN博客

代码块

from win32com.client import Dispatch
#pip install win32compat
#pip install pywin32
import os
import re
import openpyxl
import requests
import urllib.request
import time
def download(url, downpath,filename,i):
    if filename in os.listdir(downpath):
        print(str(i)+"th already there")
        return
    file_path=downpath+'\\'+filename
    user_agent = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36"}
    request = urllib.request.Request(url, headers=user_agent)
    #response = urllib.request.urlopen(request)
    response = requests.get(url, headers=user_agent)
    f = open(file_path, 'wb')
    f.write(response.content)
    #response对象数据存储
    f.close()
    print(str(i)+'th is done')
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'
input= r'E:\huang\Documents\其他行业'
os.chdir(input)
downpath=r'E:\Alark\Users\Desktop\年报\2015\其他'
downlist='2015-2016年其他行业.xlsx'
wb = openpyxl.load_workbook(downlist)
ws = wb.active
#active_sheet = wb.active
i=1
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)
    i=i+1
    download(url, downpath, filename,i)
wb.save("cache.xlsx")


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

圣道寺

您的支持将使我的探索更进一步

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值