Зачистка - поймать ответ JSON с Python - PullRequest
0 голосов
/ 01 октября 2018

Мне нужно очистить веб-сайт кнопкой «загрузить еще».Мне нужно поймать ответ json (который невидим в html-коде) и проанализировать его для построения URL-адресов

Это ответ JSON-запроса на пост

image

Я использую Selenium, Python.как я ?THx

1 Ответ

0 голосов
/ 01 октября 2018

Вы можете фактически обойтись без нажатия кнопки «загрузить еще», прочитав вызов API, который веб-сайт отправляет при нажатии кнопки, а затем отправляя его через Selenium.Если вы отправите его через Selenium, вы можете получить ответ.Вот что я использую на сайте Angular.Вам придется изменить его для работы с веб-сайтом, который вы используете, но это должно помочь вам начать.

    call = """
        $http = angular.element(document.body).injector().get('$http');

        var done = arguments[0];

        $http({
            method: 'POST',
            headers: {
                "Content-Type": "application/json"
            },
            data: {
                foo: "bar"
            },
            url: "https://request.url/"
        }).then(data => done(data));

    """
    json_response = driver.execute_async_script(call)

Метод execute_async_script выполнит вызов и будет ждать ответа JSON.

Вы также можете щелкнуть правой кнопкой мыши на xhr в Chrome DevTools и скопировать вызов API, которыйдолжно облегчить воссоздание его с селеном.

Дайте мне знать, если у вас есть дополнительные вопросы.

...