CoderCastrov logo
CoderCastrov
Веб

Парсинг веб-страниц с помощью Glitch

Парсинг веб-страниц с помощью Glitch
просмотров
2 мин чтение
#Веб
Table Of Content

    Glitch.com не нов, но он все еще нравится мне очень. Он помогает быстро "развернуть" ваши фрагменты JavaScript и сделать их доступными, например, для создания API.

    Hilarious Poorly Drawn comic… And yeah, do visit the artist’s website!

    Мы, вероятно, говорим о довольно простых веб-API, и вам понадобится платная подписка, чтобы разместить свой код в приватном репозитории, получить более быстрое и надежное время выполнения и так далее. (Таким образом, если вы хотите сделать что-то большее, чем просто поковыряться в нем, есть способы обойти [1] и использовать только "бесплатную" версию Glitch - если ваши требования достаточно гибкие.)

    Бесплатные "Glitch" делят ресурсы, поэтому ожидайте долгих временных задержек при запуске.

    Your typical free Glitch may take considerable time to “wake up”

    Хорошо, хорошая вещь с этими публичными "репозиториями Glitch" в том, что делиться очень легко, особенно поскольку бесплатные репозитории по умолчанию являются публичными. ;) (Вы не хотите размещать что-то конфиденциальное. Кстати, вот как обрабатывать пароли, токены и т.д. в Glitch.)

    **Посмотрите мой Glitch: **https://glitch.com/edit/#!/tender-rooster

    Игнорируя все мелочи для отображения страницы, вам интересен следующий фрагмент кода для парсинга веб-страниц:

    app.get('/json', (req, res) => {
      axios.get(url).then(response => {
        const $ = cheerio.load(response.data);
        const comicUrl = $('figure').find('img').attr('src');
        const jsonResponse = {
          "image": `${comicUrl}`,
          "presentedBy": 'https://platformeconomies.com'
        };
        res.json(jsonResponse);
      }).catch(error => res.json(error));
    });

    С помощью Cheerio и инструментов разработчика Chrome [2] разбор правильных элементов в DOM целевой страницы довольно прост.

    Если вам нужны профессиональные онлайн-средства разработки, все в рамках онлайн-IDE, я рекомендую GitHub Codespaces. Если кодирование не является вашим основным заботой, но вам нужно реализовать сложные процессы без лишних усилий, ознакомьтесь с этой статьей. Хотите, чтобы искусственный интеллект помогал вам в кодировании? Посмотрите это.

    Кроме того, вот некоторые API Glitch, которые я создал: веб-комиксы для вашего удовольствия. Обратите внимание, что я не поддерживаю их и возможно, что не буду вносить необходимые изменения в код в ближайшее время, поэтому не полагайтесь на эти API - и справляйтесь с тем, насколько медленно они могут отвечать [1].

    API Marketoonist:

    https://fallacious-theater.glitch.me/json

    API Poorly Drawn Lines:

    https://tender-rooster.glitch.me/json

    API Daily Dilbert:

    https://tremendous-wolverine-1.glitch.me/json

    API Savage Chicken:

    https://stirring-fowl.glitch.me/json


    **[1] **Работу с длительными циклами запуска бесплатных Glitch можно решить, кэшируя результаты API с использованием инструментов управления API перед вашими API. Фактически, это то, что вы должны делать по многим причинам, потому что только слоистая архитектура API будет безопасной и надежной.

    Вот несколько примеров служб с подсказками о том, как их настроить.

    Что касается управления API, по примерам Apigee и API Gateway:

    APIGEE:

    Apigee

    AWS API Gateway:

    AWS API Gateway AWS API Gateway

    Azure API Management работает очень похожим образом. (Мониторинг Azure APIM также очень удобен.)

    [2] Инструменты разработчика Chrome могут вам помочь:

    https://yizeng.me/2014/03/23/evaluate-and-validate-xpath-css-selectors-in-chrome-developer-tools/

    Из панели Elements:

    Используйте функцию поиска внутри панели Elements для оценки XPath/CSS-селекторов и выделения соответствующих узлов в DOM.

    Выполните токены $x("some_xpath") или $$(".css-selectors") в панели Console, которые одновременно оценивают и проверяют.

    Chrome Developer Console