Загрузите файл с веб-сайта, созданный javascript в qt

Сезон фэнтези-футбола начинается снова, поэтому я пытаюсь написать своего собственного помощника по драфту для моей лиги фэнтези-футбола. Я хочу сканировать информацию из Фэнтези. Есть таблицы, которые я могу скачать как файлы .csv. Эти загружаемые файлы создаются с помощью сценария.

Например, у вас есть следующий сайт: FantasyPros РБ. Там вы можете загрузить информацию из таблицы ниже в файл .csv. Если посмотреть в исходный код, вы получите следующую информацию: «Кнопка» определяется как

<a href="javascript:;" class="export pull-right"
style="margin:5px;"><i class="fa fa-fp fa-fp-download"></i></a>

и определена эта функция скрипта:

<script type="text/javascript" src="//cdn.fantasypros.com/js/fp-csv-export-1.7.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    $(".export").click(function(e) {
        if (regfence(e, "Export CSV")) {
            var csv_filename = 'FantasyPros_Fantasy_Football_Projections_RB.csv';
            exportTableToCSV.apply(this, [$('#data'), csv_filename, 'nfl_projections']);
        }
    });
});
</script>
</script>

Моя цель сейчас - сохранить этот файл в моем локальном каталоге (или прочитать его только в Qt), чтобы использовать предоставленные данные. Я пробовал следующее, но это не сработало, понятия не имею, как добраться до файла:

view = new QWebEngineView(parent);
view->load(QUrl("https://www.fantasypros.com/nfl/projections/rb.php"));
connect(view,SIGNAL(loadFinished(bool)),this,SLOT(finishLoading(bool)));
void MainWindow::finishLoading(bool) {
    view->page()->runJavaScript("document.getElementsByClassName(\"fa fa-fp fa-fp-download\")[0].click();",[] (const QVariant &v) { qDebug() << v.toString(); });
}

Но тогда ничего не происходит. Что я делаю не так или есть другой способ получить этот файл .csv?

Спасибо, что ответили и помогли!

Я только что проверил, и на странице вас попросят войти в систему, чтобы загрузить файл.

eyllanesc 10.08.2018 16:59

Похоже, что URL-адрес, по которому вы отправляете веб-запрос, нужен для входа на сайт. Если вы не авторизуетесь, сайт не отправит вам файл. Я проверял в обычном браузере без входа.

Talent Developer 11.08.2018 01:44

Хорошо, я не считал это, потому что у меня там есть учетная запись, и я вошел в систему. Так что даже если я вошел в систему, я не могу скачать файл. Исходя из кода, должен ли мой подход делать то, что я хочу?

Wirman 12.08.2018 19:32
0
3
74
0

Другие вопросы по теме