使用selenium模拟爬虫当输入参数点击查询会查询到多条数据每点击一条数据就是下载文件可以根据css selector定位link元素for遍历点击文件下载当文件下载时因文件大小会影响下载的时间长久怎么去精确控制根据文件的大小去设置下载文件的时候且需要判断文件是否下载成功当文件下载失败时需重置下载3次超过3次不予下载且记录下载失败文件名按逻辑补全下面代码el= #ctl00_ctl00_Deta
def click_download_files(self, el): # 查找所有可点击下载的文件 download_links = self.driver.find_elements(By.CSS_SELECTOR, el) for link in download_links: # 获取文件大小 file_size = self.get_file_size(link) if file_size is not None: # 根据文件大小设置下载时间 download_time = self.calculate_download_time(file_size) # 尝试下载文件,最多重试3次 for i in range(3): if self.download_file(link, download_time): break else: # 下载失败,记录文件名 self.record_failed_download(link) # 等待一段时间后重试 time.sleep(5) else: # 文件大小获取失败,记录文件名 self.record_failed_download(link)
def get_file_size(self, link): # 获取文件大小的逻辑 file_size = None # ... return file_size
def calculate_download_time(self, file_size): # 根据文件大小计算下载时间的逻辑 download_time = None # ... return download_time
def download_file(self, link, download_time): # 下载文件的逻辑 success = False # 点击下载链接 link.click() # 等待下载完成 time.sleep(download_time) # 判断文件是否下载成功 if self.is_file_downloaded(): success = True return success
def is_file_downloaded(self): # 判断文件是否下载成功的逻辑 downloaded = False # ... return downloaded
def record_failed_download(self, link): # 记录下载失败文件名的逻辑 # ... pas
原文地址: http://www.cveoy.top/t/topic/iqc7 著作权归作者所有。请勿转载和采集!