【发布时间】:2020-12-12 13:46:10
【问题描述】:
我有一个 csv 文件,其中包含 95k 个 url 链接,这些链接都是 pdf 文件。 我使用 selenium 首先登录页面,然后循环文件以触发下载到我的文件中。
这是我的简单代码
download_dir=r"C:\Users\Me\Downloads\pdfs"
chrome_options = Options()
chrome_options.add_experimental_option('prefs', {
"download.default_directory": download_dir,
"download.prompt_for_download": False,
"download.directory_upgrade": True,
"plugins.always_open_pdf_externally": True
}
)
driver = webdriver.Chrome(executable_path=r"C:\Users\Me\Downloads\chromedriver_win32\chromedriver.exe",options = chrome_options)
driver.get('https://url.com/')
username = driver.find_element_by_id("email")
password = driver.find_element_by_id("password")
username.send_keys("email@domain.com")
password.send_keys("password")
driver.find_element_by_name("Login_Button").click()
driver.find_element_by_name("company").click()
driver.find_element_by_name("Continue_Button").click()
with open(r'C:\Users\Me\Documents\csvTest.csv', newline='', encoding='utf-8-sig') as csvfile:
csv_reader = csv.reader(csvfile)
for row in csv_reader:
pdfUrl = row[0]
driver.get(pdfUrl)
目前它正在一个一个地执行大约每小时 1500 个文件。我阅读了有关多处理的信息,但我不熟悉如何实现它,而且鉴于正在启动的单个驱动程序,我不确定是否可以在这里进行。有没有办法通过 n 个文件批量触发下载?而不是一一下载。
【问题讨论】:
标签: python selenium pdf web-scraping