在Python中下载带回调的CSV

时间:2019-03-29 02:53:38

标签: javascript python html ajax python-requests

尝试从Morningstar中的按钮链接下载CSV。该链接包含一个回调,因此似乎阻止了下载。在Chrome浏览器中,使用“检查”功能时,URL为http://financials.morningstar.com/finan/ajax/exportKR2CSV.html?&callback=?&t=XNAS:GOOGL&region=usa&culture=en-US&cur=&order=asc,但粘贴到地址栏中后,不会自动下载CSV。如何更新以下代码以通过回调从链接下载CSV? http://financials.morningstar.com/ratios/r.html?t=GOOGL&region=usa&culture=en-US

enter image description here

import requests

url = "http://financials.morningstar.com/finan/ajax/exportKR2CSV.html?&callback=?&t=XNAS:GOOGL&region=usa&culture=en-US&cur=&order=asc"
with requests.Session() as s:
    download = s.get(url)
    decoded_content = download.content.decode('utf-8')
    cr = csv.reader(decoded_content.splitlines(), delimiter=',')
    my_list = list(cr)
    for row in my_list:
        print(row)

my_list

输出:

<Response [204]>
[]

1 个答案:

答案 0 :(得分:1)

如果您确实选择了硒路线,则可以轻松地使用类选择器来定位下载按钮。您可以通过Chrome选项指定下载选项,例如目录。

from selenium import webdriver

d = webdriver.Chrome()
d.get('http://financials.morningstar.com/ratios/r.html?t=GOOGL&region=usa&culture=en-US')
d.find_element_by_css_selector('.large_button').click()
d.quit()
相关问题