DrissionPage下载到指定文件夹

from DrissionPage import ChromiumOptions, ChromiumPage
import time


class DownloadTellusPDF:
    def __init__(self, download_folder):
        self.download_folder = download_folder
        options = ChromiumOptions()
        options.headless(True)
        options.set_download_path(download_folder)
        options.set_proxy('http://xxxx:8080')
        self.tab = ChromiumPage(options)

    def download(self, url, fileName):
        self.tab.get(url)
        self.tab.ele('xpath://button[@class="fr-btn-text x-emb-export"]').click()
        self.tab.ele('xpath://button[@class="fr-btn-text x-emb-export"]').click()
        time.sleep(1)
        self.tab.set.download_file_name(name=fileName, suffix='pdf')
        self.tab.set.when_download_file_exists('overwrite')
        d = self.tab.ele('xpath://div[@class="menu-item"]/div[contains(text(), "PDF")]').click.to_download(
            save_path=self.download_folder,
            rename=fileName,
            suffix='pdf'
        )

        while d.state == 'running':
            print(f"{fileName}->当前下载状态: {d.state}, 进度: {d.received_bytes} / {d.total_bytes}")
            time.sleep(0.1)

if __name__ == "__main__":
    a = DownloadTellusPDF(download_folder=r'\\cnfo\TEST')
    a.download(url=r'https:xxx1', fileName='test')

  

posted @ 2025-05-06 11:11  CrossPython  阅读(152)  评论(0)    收藏  举报