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