Невозможно получить новую страницу при парсинге с помощью запроса post на сайте .aspx с использованием jsoup

Я хочу очистить данные с определенного сайта. В нем есть несколько фильтров, которые необходимо выбрать для получения данных. Я пытаюсь использовать JSOUP и опубликовать данные формы и получить html для нового выбора в фильтре. Ниже мой код. каждый раз, когда я пытаюсь запустить программу, я получаю только html страницы по умолчанию, т.е. страница с новыми входными данными фильтра не получается.

        Document doc = Jsoup.connect("http://45.114.246.184/bsmm/Dashboards/DB.aspx").timeout(50*1000).get();

    Elements viewState = doc.select("input[name=__VIEWSTATE");
    Elements viewStateGen = doc.select("input[name=__VIEWSTATEGENERATOR");
    Elements eventValidation = doc.select("input[name=__EVENTVALIDATION]");

    Map<String,String> allFields = new HashMap<String,String>();
    allFields.put("ctl00$ScriptManager1", "ctl00$ContentPlaceHolder1$updatepanel|ctl00$ContentPlaceHolder1$btnfilter");
    allFields.put("ctl00$ContentPlaceHolder1$ddltop", "1");
    allFields.put("ctl00$ContentPlaceHolder1$ddl1", "12");
    allFields.put("ctl00$ContentPlaceHolder1$ddl2", "117");
    allFields.put("__EVENTTARGET", "");
    allFields.put("__EVENTARGUMENT", "");
    allFields.put("__LASTFOCUS", "");
    allFields.put("__VIEWSTATE", viewState.val());
    allFields.put("__EVENTVALIDATION", eventValidation.val());
    allFields.put("__VIEWSTATEGENERATOR", viewStateGen.val());
    allFields.put("__ASYNCPOST", "true");
    allFields.put("ctl00$ContentPlaceHolder1$btnfilter", "Submit");
    allFields.put("ctl00$ContentPlaceHolder1$btnrefresh", "Reset");


    Connection.Response res = Jsoup.connect("http://45.114.246.184/bsmm/Dashboards/DB.aspx")
            //.userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.167 Safari/537.36")
            .data(allFields)
            .timeout(50*1000)
            .method(Method.POST).
            execute();

    Document doc2  = Jsoup.connect("http://45.114.246.184/bsmm/Dashboards/DB.aspx")
            .cookies(res.cookies())
            .timeout(50*1000)
            .get();

    System.out.println(doc2);

Я что-то делаю не так, просто JSOUP не подходит в этом случае?

Заранее спасибо.

Я не могу воспроизвести. Вы попробовали позже, как сказано в сообщении. Может, сервис какое-то время был недоступен?

Luk 11.04.2018 15:21

Да, много раз перепробовал. Можете ли вы проверить 1-й метод, который я использовал, ошибка 500 - это второй подход, который я использовал.

Sushmitha 11.04.2018 15:24

Я выполнил ваш код и получил такой результат: justpaste.it/1jhiv

Luk 11.04.2018 15:27

Возможно, вы пытались слишком много раз, и ваш IP-адрес заблокирован. Можете попробовать с другим IP.

Luk 11.04.2018 15:27

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

Sushmitha 12.04.2018 08:24
0
5
75
0

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