Python自动下载csv文件

2024-09-30 14:29:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,我正在尝试制作一个每分钟检查this page的脚本。每当有一个新的csv文件上传到它,我想下载它

我想出了如何使用requestsBeautifulSoup获得页面,如下所示:

URL = "http://www.nasdaqomxnordic.com/aktier/equities"

HEADERS = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36', 
           "Upgrade-Insecure-Requests": "1",
           "DNT": "1",
           "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
           "Accept-Language": "en-US,en;q=0.5",
           "Accept-Encoding": "gzip, deflate"}

response = requests.get(URL, headers=HEADERS)  
    if response.status_code == 200:  
        soup = BeautifulSoup(response.content, features="html.parser")

问题是我不知道如何获得实际的文件标识符以及如何下载它们

手动下载其中一个文件时,查看浏览器的网络日志,我在以下位置找到了该文件的引用:

**General**  
Content-Disposition: attachment; filename=NordicEquity-posttrade-2021-01-15T2144.csv  

**Response headers**  
Content-Disposition: attachment; filename=NordicEquity-posttrade-2021-01-15T2144.csv  

**Form Data**  
xmlquery: post>  
param name="SubSystem" value="Prices"/>  
param name="Action" value="GetTrademinute"/>  
param name="Exchange" value="NMF"/>  
param name="trademinute" value="NordicEquity-posttrade-2021-01-15T2144"/>  
param name="assetclass" value="4"/>  
param name="ext_contenttype" value="application/ms-excel"/>  
param name="ext_contenttypefilename" value="NordicEquity-posttrade-2021-01-15T2144.csv"/>  
param name="ext_xslt" value="/nordicV3/trades_csv.xsl"/>  
param name="ext_xslt_lang" value="en"/>  
param name="ext_xslt_hiddenattrs" value=",ins,t,mic,ox,tr,tn,x,oi,sp,at,utcagrt,"/>  
param name="app" value="/aktier/equities"/>  
/post>  

如何获取文件标识符并下载它们


Tags: 文件csvnameparamapplicationvalueresponserequests
1条回答
网友
1楼 · 发布于 2024-09-30 14:29:27

使用inspect后,我发现它对链接使用了“onClick”。在这种情况下,最好使用selenium(您可以像this一样安装它)。这是获取页面上第一个文件的代码:

from selenium import webdriver
url = "http://www.nasdaqomxnordic.com/aktier/equities"
driver = webdriver.Chrome('/path/to/webdriver')
driver.get(url)
driver.find_element_by_xpath('//*[(@id = "recordlist")]//a').click()

相关问题 更多 >