簡體   English   中英

使用Selenium / Chrome和Python下載多個csv文件

[英]Downloading multiple csv files with Selenium/Chrome & Python

我在使用Selenium和Python使用Chrome下載多個文件時遇到問題。 我執行以下循環,但僅在我的下載文件夾(使用Mac)中找到“單擊”的最后一個文件:

for x in range(4): 
    driver.execute_script("arguments[0].click()",sub_elements[x])  
    print(sub_elements[x].get_attribute('innerText').strip())

    element = WebDriverWait(driver, 3).until(
            EC.text_to_be_present_in_element((By.ID, 'selectedMonth'), 
    sub_elements[x].get_attribute('innerText').strip() ))                                           

    driver.find_element_by_id("exportCsv").click() #

谷歌搜索后,我嘗試更改瀏覽器選項,如下所示,但它不起作用:

from selenium.webdriver.chrome.options import Options

chrome_options = Options()
prefs = {'profile.default_content_setting_values.automatic_downloads': 1}
chrome_options.add_experimental_option("prefs",prefs)
driver = webdriver.Chrome(chrome_options=chrome_options)

謝謝你的幫助!

這個exportCsv聽起來像RPC,需要花費一些時間來執行。 這只是一個理論,但可能值得一試。

背景知識:點擊鏈接后,就會發送請求。 如果在任何形式的響應到達第一個請求之前單擊另一個鏈接,則第一個請求將被取消。 這里似乎發生的事情是,您單擊得如此之快,以至於您取消了前三個請求,只有最后一個請求通過了(我想可能要花一兩秒鍾才能真正得到響應)。

單擊后,嘗試等待下載開始。 (我認為沒有WebDriver方法,但是例如您可以觀察“下載”文件夾中的文件數量),或者單擊兩次之間僅睡5秒鍾,這是一項快速而骯臟的測試。


附帶說明一下,也許從瀏覽器中獲取下載鏈接(可能與cookie一起),並在沒有瀏覽器的情況下單獨下載它們會更加可靠(使用Selenium進行下載時,很多事情都會出錯,變量太多)。

抱歉,但是我看不到任何URL或與您的問題相關的任何信息...除非您要從桌面上的文件夾中合並多個CSV。 如果是這樣,我可以為您提供一些解決方案...但是您似乎正在通過網絡進行操作...無論如何,請查看此解決方案。 希望這能使您朝正確的方向前進,但是...我不能告訴您您在做什么...

ad <- read.csv("http://www-bcf.usc.edu/~gareth/ISL/Advertising.csv")
head(ad)

這是一種從URL引用多個PDF文件並下載每個文件的方法。

library(XML)
library(RCurl)

url <- "https://www.bot.or.th/English/MonetaryPolicy/Northern/EconomicReport/Pages/Releass_Economic_north.aspx"
page   <- getURL(url)
parsed <- htmlParse(page)
links  <- xpathSApply(parsed, path="//a", xmlGetAttr, "href")
inds   <- grep("*.pdf", links)
links  <- links[inds]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM