1

我是 python 的新手,我正在尝试制作一个每分钟检查此页面的脚本。每当有新的 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>  

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

4

1 回答 1

0

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

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()
于 2021-01-18T10:57:00.567 回答