Web-очистка таблиц в расписании - PullRequest
0 голосов
/ 30 января 2019

Я довольно новичок в изучении веб-страниц, но как часть проекта, над которым я работаю, я пытаюсь вычеркнуть детали классов из этого расписания. https://www101.dcu.ie/timetables/feed.php?prog=case&per=2&week1=19&week2=30&day=7&hour=1-20&template=Studprog Я собираюсь попробовать использовать jsoup, но не уверенкак именно проанализировать данные так, чтобы возвращалась только соответствующая информация.Любая помощь или понимание будет принята с благодарностью

1 Ответ

0 голосов
/ 30 января 2019

Вы можете использовать iconv и cheerio.

Я сделал для вас функциональный пример:

const rp = require('request-promise');
const iconv = require('iconv-lite');
const cheerio = require('cheerio');

const getRequestDefault = (method) => (url) => 
    rp({
        encoding: null,
        method: method,
        uri: url,
        rejectUnauthorized: false
    })
        .then(html => {
            const $ = cheerio.load(
                iconv.decode(
                    new Buffer(html), "ISO-8859-1"
                )
            );

            return $;
        })

const getRows = () => 
    getRequestDefault('GET')(`https://www101.dcu.ie/timetables/feed.php?prog=case&per=2&week1=19&week2=30&day=7&hour=1-20&template=Studprog`)
        .then($ => {
            // Example
            $('table tbody tr')
                .toArray()
                .forEach(
                    a => {
                        console.log($(a).text());
                    }
                );
        });

getRows();

Это приведет к удалению всех полей tr всех таблиц.

Вы можете использоватьэто как отправная точка.Просто скопируйте код в файл .js, установите зависимости и используйте: node file.js

Чтобы установить зависимости: npm install cheerio iconv request request-promise

Надеюсь, это поможет вам

...