Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 18.03.2019
Сообщений: 689

Парсинг. Корректировка

09.01.2022, 00:13. Показов 569. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Подскажите, пожалуйста, как я могу разбить строку, чтобы результат выводился с новой строки для facHeader и facultie? А еще, такой вопрос: как при парсинге добиться такого же вида расписания, как на сайте? Как мне подгруппы засунуть в факультеты?

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.Select;
 
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;
 
 
public class Parser {
    public static void main(String[] args) throws IOException {
 
        System.setProperty("webdriver.chrome.driver", "exe/chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        driver.get("https://www.vyatsu.ru/internet-gazeta/raspisanie-sessiy-obuchayuschihsya-na-2016-2017-uc.html");
        Document doc = Jsoup.connect("https://www.vyatsu.ru/internet-gazeta/raspisanie-sessiy-obuchayuschihsya-na-2016-2017-uc.html").get();//получает html-код страницы
        List<WebElement> headerEduPrograms = driver.findElements(By.className("headerEduPrograms"));
        List<WebElement> faculties = driver.findElements(By.cssSelector("table[border]"));
        List<Data> result = new ArrayList<>();
        for (int i = 0; i < headerEduPrograms.size(); i++) {
            List<String> facultiesText = faculties.get(i).findElements(By.cssSelector("div.fak_name")).stream().map(WebElement::getText).collect(Collectors.toList());
            Data data = new Data(headerEduPrograms.get(i).getText(), facultiesText);
            result.add(data);
        }
        result.forEach(System.out::println);
 
 
        Element table = doc.select("table").first(); //находим первую таблицу в документе
        Elements rows = table.select("tr");// разбиваем нашу таблицу на строки по тегу
 
        for (int i = 1; i < rows.size(); i++) {
            Element row = rows.get(i); //по номеру индекса получает строку
            Elements cols = row.select("td");// разбиваем полученную строку по тегу на столбы
            System.out.print(cols.get(0).text());// первый столбец
            System.out.println();
        }
        driver.quit();
    }
 
    static class Data {
        private final String facHeader;
        private final List<String> faculties;
 
        public Data(String facHeader, List<String> faculties) {
            this.facHeader = facHeader;
            this.faculties = faculties;
        }
 
        @Override
        public String toString() {
            return facHeader  +
                    faculties ;
 
        }
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.01.2022, 00:13
Ответы с готовыми решениями:

Необходима корректировка программы ввода логина и пароля
Только начинаю практиковать Java, нуждаюсь в наставлении от опытных программистов Попытался сделать программу для ввода логина и пароля...

Корректировка
Братва, дохимичьте код по братски! метод (Стринг *, Стринг) * { int lm = e.length() - s.length(); int v = 0; ...

Корректировка кода
У меня есть класс &quot;SchoolClass&quot; Там переменные number, letter. Как переделать код так чтобы за место number и letter был (id, name) ...

4
 Аватар для InvalidCode
295 / 471 / 86
Регистрация: 26.02.2018
Сообщений: 931
Записей в блоге: 2
10.01.2022, 10:57
Цитата Сообщение от Катя6 Посмотреть сообщение
с новой строки для facHeader и facultie
Java
1
2
3
4
5
6
@Override
        public String toString() {
            return facHeader  + "\n" + 
                    faculties ;
 
        }
0
0 / 0 / 0
Регистрация: 18.03.2019
Сообщений: 689
11.01.2022, 19:54  [ТС]
InvalidCode, каждый факультет тоже должен быть с новой строки. Подскажите еще ,пожалуйста, как туда потом вложить таблицу с расписанием. В каждый факультет должно быть записано тоже самое, что и на скриншоте, т.е. название подгруппы, группа и курс
0
 Аватар для InvalidCode
295 / 471 / 86
Регистрация: 26.02.2018
Сообщений: 931
Записей в блоге: 2
12.01.2022, 06:32
Катя6, шо вы знаете об ООП? В даном случае, лучше сделать систему обектов:
Создаем главный клас, Факультет, в него пихам масив, а еще лучше список Направлений, в клас направления пихаем список Курсов, а уже клас Курс содержит в себе список Груп... и так долее. Сия магия называется вложением класов. Создаем необходимые методы для работы. Это системе. Теперь к вопросу как сделать шото похожее на то, шо на скрине? Тут в двух словах не обясниш, здесь ГУИ курить нужно...
0
 Аватар для StepFather322
365 / 252 / 113
Регистрация: 07.10.2017
Сообщений: 1,330
12.01.2022, 15:09
Цитата Сообщение от InvalidCode Посмотреть сообщение
Тут в двух словах не обясниш, здесь ГУИ курить нужно...
Здесь задача чисто селекторы подобрать чтобы достать инфу которая на скрине с сайта. Гуи тут не нужен
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.01.2022, 15:09
Помогаю со студенческими работами здесь

Корректировка оператора scanf, а точнее корректировка индексов
Я пытаюсь написать программу которая меняет индексы в операторе scanf на правильные индексы. То есть я сначала запоминаю переменные в...

Парсинг JSON ответа. Парсинг строки с массивами
Есть ответ с сервера в виде json: ,\&quot;Polygon\&quot;:,]}&quot;, &quot;OrganizationId&quot;: 2, &quot;SyncDate&quot;: &quot;2021-01-20T11:23:42.007&quot; ...

Парсинг JSON ответа. Парсинг строки с массивами
public class LocationData { public double Center { get; set; } } public class Field : IField ...

Корректировка
Помогите пожалуйста удалить все лишнее из кода, что-бы остался только зеленый, белый шар с синими полосками и звезды. Все остальное нужно...

Корректировка
упростить внесение массивов с комментарием пожалуйста(предподаватель не принял сказал массивы усложнила,упростить два массива в 1) uses...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru