簡體   English   中英

我們如何從 URL 下載多個 CSV 文件?

[英]How can we download multiple CSV files from a URL?

我正在測試這段代碼。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


d = webdriver.Chrome('C:\\Utility\\chromedriver.exe')
d.get('https://developers.humana.com/Resource/PCTFilesList?fileType=innetwork')

# stuck here...
#links = 
for link in links:
    d.get(link)
    # click page 2, 3, 4, etc., up to 100
    for page in range(1, 100)
    page.click
d.quit()

因此,我嘗試在第 1 頁下載 CSV 文件,然后單擊第 2 頁並下載這些文件,然后單擊第 3 頁並再次下載這些文件。 我認為我在這里分享的示例代碼應該是一個開始,但它肯定需要一些改進才能正常工作。 知道我該怎么做嗎? 謝謝

wait = WebDriverWait(d, 20)
d.get('https://developers.humana.com/Resource/PCTFilesList?fileType=innetwork')
for i in range(2,101):
    time.sleep(1)
    j=i
    if i>5:
        j=5
    #links=d.find_elements(By.CSS_SELECTOR,"a.download-pct-file-link")
    #print(len(links))
    #for link in links:
        # link.click()
    wait.until(EC.element_to_be_clickable((By.XPATH, f"//a[@data-dt-idx='{j}']"))).click()
    print(f"//a[@data-dt-idx='{j}']")

我通過頁面將它轉到 go,同時在第 5 頁后將值切換為 click 為 5。data-dx-idx 從 2-5 變為 5,然后保持在 5。如果你很可能沒有 time.sleep()處理陳舊。

進口:

import time

您可以使用此解決方案:

import requests

length = 1
url = "https://developers.humana.com/Resource/GetData?fileType=innetwork&sEcho=1&iColumns=3&sColumns=%2C%2C\
                                                                                                &iDisplayStart=0&iDisplayLength="

r = requests.get(url+str(length))
json_data = r.json()

length = json_data['iTotalRecords']
print("files ", length)
r = requests.get(url+str(length))
json_data = r.json()

for e in json_data['aaData']:
    download_url = "https://developers.humana.com/Resource/DownloadPCTFile?fileType=innetwork&fileName=" + e['name']
    print(e['name'])
    print("download url: ", download_url)

然后只需循環下載文件。

暫無
暫無

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

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