Скачать CSV с обратным вызовом в Python - PullRequest
2 голосов
/ 29 марта 2019

Попытка загрузить CSV по ссылке кнопки в Morningstar.Ссылка включает в себя обратный вызов, поэтому кажется, что она препятствует загрузке.В 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 Ответ

1 голос
/ 29 марта 2019

Если вы пойдете по селеновому маршруту, вы легко сможете использовать селектор классов для кнопки загрузки.Вы можете указать параметры загрузки, такие как каталог, используя параметры 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()
...