我正在尝试弄清楚如何遍历ListBox中的项目以及下载和批量下载文本文件。
这是我正在查看的链接。
https://cdr.ffiec.gov/public/PWS/DownloadBulkData.aspx
我想选择这个产品。
‘电话会议报告--资产负债表,损益表,逾期--四个时期’
然后循环浏览2020-2012年,并将这些文件批量下载到我的本地硬盘驱动器。
我在浏览器中点击了F11,很容易就找到了按钮和“DatesDropDownList”,但我没有看到任何链接到文本文件的URL,这些文本文件对所有的下载都很有用。你需要Selenium来做这个吗?
除了在列表中选择和单击按钮之外,有没有某种web服务可以让这个过程变得更容易?
发布于 2020-12-09 01:05:06
我会使用硒。在Python中实现你在web浏览器中手动完成的操作是一条简单的途径。
下面是从您提供的内容中提取的示例。
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
# using Google Chrome, can use the browser of your choice
driver = webdriver.Chrome('PATH/TO/chromedriver.exe')
url = 'https://cdr.ffiec.gov/public/PWS/DownloadBulkData.aspx'
driver.get(url)等待可用产品加载,然后选择value。
path = "//select[@id='ListBox1']"
products = WebDriverWait(driver, 10).until(
EC.presence_of_element_located(
(By.XPATH, path)
)
)
select = 'Call Reports -- Balance Sheet, Income Statement, Past Due -- Four Periods'
driver.find_element_by_xpath(path+"/option[text()='"+select+"']").click()等待数年才能加载。获取年份列表。选择其中一个作为示例。
path = "//select[@id='DatesDropDownList']"
dropdown = WebDriverWait(driver, 10).until(
EC.presence_of_element_located(
(By.XPATH, path)
)
)
dates = driver.find_elements_by_xpath(path+'/option')
# an example, you can loop through dates
driver.find_element_by_xpath(path+"/option[text()='"+dates[10].text+"']").click()你可以从这里解压文件,将它们加载到Pandas中,然后存储在DataFrame文件、数据库等中。
https://stackoverflow.com/questions/65202606
复制相似问题