[英]Download file from sharepoint using selenium webdriver python
[英]download the latest file from (bunch of files) a website using selenium webdriver python
我想从“https://mft.rrc.texas.gov/link/328a303b-8bf8-4c9d-9285-c8b25ce18fe0”下载最新文件。 通常最新文件的前缀为 (currentdate-1)。 此时为 05-23-2022.zip。 当我运行以下示例代码时:
from selenium.webdriver.common.keys import Keys
import time
from selenium.webdriver.firefox.options import Options
options = Options()
options.add_argument("--headless")
options.set_preference("browser.download.folderList", 2)
options.set_preference("browser.download.manager.showWhenStarting", False)
options.set_preference("browser.download.dir", "/a/b/c")
options.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/force-download")
driver = webdriver.Firefox(options=options)
driver.get('https://mft.rrc.texas.gov/link/328a303b-8bf8-4c9d-9285-c8b25ce18fe0')
elem = driver.find_element(by=By.XPATH, value="//a[text()='05-23-2022.zip']")
我只能下载第一页可用的文件(网页有分页,默认只能看到250个文件)。 我打算下载的文件不在前 250 个中。因此它会抛出如下错误:
selenium.common.exceptions.NoSuchElementException:消息:无法定位元素://a[text()='05-23-2022.zip']
1)这里的问题是网站有分页,如何下载没有放在第一页的文件? 2)如何从网页下载所有文件?
下载前只需点击last page
按钮即可下载最后一个文件:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# initiate driver ...
try:
# go to last page
wait = WebDriverWait(driver, 10)
last_page_btn =
wait.until(EC.visibility_of_element_located((By.CLASS_NAME, "ui-paginator-last")))
last_page_btn.click()
# do your stuff ...
finally:
driver.quit()
要下载所有文件,您必须使用以下操作创建 for 循环:
获取文件列表:
files_list = wait.until(EC.visibility_of_all_elements_located((By.CLASS_NAME, "ui-commandlink")))
像for file in files_list:
并通过单击下载所有文件
go 到下一页(请参阅代码如何将 go 到最后一页,但将 class 名称更改为ui-paginator-next
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.