Парсинг веб-страниц с помощью Glitch
Table Of Content
Glitch.com не нов, но он все еще нравится мне очень. Он помогает быстро "развернуть" ваши фрагменты JavaScript и сделать их доступными, например, для создания API.
Мы, вероятно, говорим о довольно простых веб-API, и вам понадобится платная подписка, чтобы разместить свой код в приватном репозитории, получить более быстрое и надежное время выполнения и так далее. (Таким образом, если вы хотите сделать что-то большее, чем просто поковыряться в нем, есть способы обойти [1] и использовать только "бесплатную" версию Glitch - если ваши требования достаточно гибкие.)
Бесплатные "Glitch" делят ресурсы, поэтому ожидайте долгих временных задержек при запуске.
Хорошо, хорошая вещь с этими публичными "репозиториями 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:
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, которые одновременно оценивают и проверяют.