Загрузите файл из Интернета с помощью вызова Python (всплывающее окно javascript на исходном сайте) - PullRequest
0 голосов
/ 26 сентября 2019

Я хочу достичь 2 вещей:

  1. автоматизировать загрузку файла CSV с этого сайта https://www.investing.com/equities/assura-group-historical-data

  2. автоматически выбрать диапазон дат извызов Python.

Как я могу это сделать?Считается, что это своего рода веб-копирование, но на самом деле это не веб-копирование, а более автоматизированная загрузка файла.

Проблема заключается в всплывающем окне JavaScript, когда я нажимаю кнопку загрузки.Поэтому я изо всех сил пытаюсь найти автоматизированное решение.

Большое спасибо за вашу помощь.

ОБНОВЛЕНИЯ: Я следовал приведенным ниже советам, но (поскольку я очень новичок), я останавливаюсь здесь, и японятия не имею, как построить запрос со всей информацией.Вот что я получил из браузера:

Метод POST

URL https://www.investing.com/instruments/HistoricalDataAjax

Заголовок запроса Хост: www.investing.com Пользователь-агент: Mozilla / 5.0 (Macintosh; Intel Mac OS X 10.14; rv: 69.0) Gecko / 20100101 Firefox / 69.0 Принимать: текст / обычный текст / ;q = 0,01 Accept-Language: en-US, en; q = 0,5 Accept-Encoding: gzip, deflate, br Тип содержимого: application / x-www-form-urlencoded X-Requested-With: XMLHttpRequest Content-Length: 171Соединение: keep-alive Реферер: https://www.investing.com/equities/assura-group-historical-data Cookie:

Тело запроса curr_id = 7351 & smlID = 1160667 & header = AGRP + Historical + Data & st_date = 01% 2F01% 2F2001 & end_date = 09% 2F26% 2F2019 & interval_sec = Daily & sort_col = date & sort_ord = DESC & action = исторические_данные

Нужна ли эта информация для создания вызова Python и автоматической загрузки?Как я могу поставить это вместе?

Пожалуйста, имейте в виду, что после того, как я выбрал диапазон дат, по-прежнему появляется всплывающее окно для загрузки, и при запуске этого события в отладчике ничего не отображается.

Пожалуйста, проверьте этот скриншот Спасибо.

[b] ОБНОВЛЕНИЕ 2 [/ b] Попытка, но она не работает:

import requests
headers = {'Host': 'www.investing.com','User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:69.0) Gecko/20100101 Firefox/69.0', 'Accept': 'text/plain, */*; q=0.01','Accept-Language': 'en-US,en;q=0.5','Accept-Encoding': 'gzip, deflate, br','Content-Type': 'application/x-www-form-urlencoded','X-Requested-With': 'XMLHttpRequest','Content-Length': '171','Connection': 'keep-alive','Referer': 'https://www.investing.com/equities/assura-group-historical-data'}
payload = {'curr_id':'7351','smlID':'1160667','header':'AGRP+Historical+Data','st_date':'01%2F01%2F2001','end_date':'09%2F26%2F2019','interval_sec':'Daily','sort_col':'date','sort_ord':'DESC','action':'historical_data}
session = requests.Session()
session.post('https://www.investing.com/instruments/HistoricalDataAjax',headers=headers,data=payload)

1 Ответ

0 голосов
/ 26 сентября 2019

Вы можете найти некоторую информацию, используя инструменты разработчика браузера (обычно находящиеся при нажатии F12), на вкладке Network.

Затем вы можете увидеть, как построен запрос, в каком формате указываются даты, иВы можете скопировать его на Python.

Я обычно использую запросы библиотека для HTTP-вызовов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...