Очистка динамической c таблицы данных в запросах python - AJAX - PullRequest
0 голосов
/ 17 марта 2020

Я хотел бы реализовать демо-сценарий бэкенда в python, чтобы очистить список путей к документам через URL. Если я пытаюсь обработать запрос basi c с помощью urllib.request, он не возвращает содержимое таблицы данных. Просто возвращается пустой контент, как показано ниже. Следовательно, содержимое таблицы данных может быть захвачено с помощью запроса AJAX в этом сценарии. Пример кода, который взят с домашней страницы фактического веб-сайта (Actual Page). Я думаю, что главной проблемой здесь может быть сторона токена. Как я могу обработать сторону python для захвата содержимого динамически c данных?

Код, который я написал на стороне python (текущий код python), не может обработать этот запрос и возвращает "Срок действия страницы истек из-за неактивности."

Есть предложения, указания?

Текущий python код:

from requests import Session
session = Session()
session.head("mainpage")
response = session.post(
    url= 'apiurl/getviewdatatable',
    data= {
        'name' : 'name',
        'documentPath' : 'documentPath',
    }           
)

print(response.text)

Фактическая страница: главная страница

<script>
        $(document).ready(function () {
            $('#posts').DataTable({
                "processing": true,
                "serverSide": true,
                "ajax": {
                    "url": "apiurl/getviewdatatable",
                    "dataType": "json",
                    "type": "POST",
                    "data": {
                        _token: "5uC8cmrJRYnn2gB4TCU9EFj0wjgA8BtmqqO64Uk1",
                    }
                },
                "columns": [
                                            {
                        "data": "name"
                    },
                                        {
                        "data": "documentPath"
                    },

                ],
                'createdRow': function (row, data, index) {
                    //
                    // if the second column cell is blank apply special formatting
                    //
                    $(row).addClass('table-row');

                },
                "language": {
                    "url": "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/Turkish.json"
                },
                "rowReorder":{
                    selector:'td:nth-child(2)'
                },
            });
        });
</script>

1 Ответ

0 голосов
/ 18 марта 2020

У вас есть проблема в параметрах python отправки запроса.

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

На этой странице таблицы данных заполняются источником ajax. ajax вызовы обрабатываются внутренними скриптами библиотек datatables. Вы можете увидеть страницу примера источника данных ajax по этой ссылке https://datatables.net/examples/ajax/objects.html

Но здесь в вашем коде ajax вызов более детален. Но даже в этом случае вы можете понять, как в примере выше по ссылке столбцы не являются параметрами вызова ajax. Вот часть параметров POST ajax call

"data": {
    _token: "5uC8cmrJRYnn2gB4TCU9EFj0wjgA8BtmqqO64Uk1",
 }

Так что, когда вы отправляете запрос на отправку этому apiurl, вы должны отправить запрос на отправку так же, как страница, которую вы хотите очистить

Вот правильный почтовый запрос с python:

from requests import Session
session = Session()
session.head("mainpage")
response = session.post(
    url= 'apiurl/getviewdatatable',
    data= {
        '_token' : '5uC8cmrJRYnn2gB4TCU9EFj0wjgA8BtmqqO64Uk1'
    }           
)

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