Рубрика «Puppeteer»
Как спарсить любой сайт?
2021-09-22 в 10:40, admin, рубрики: BeautifulSoup4, big data, data mining, headlessbrowser, javascript, linkedin, Puppeteer, scrapy, selenium, selenoid, открытые данные, парсинг, Тестирование веб-сервисовМеня зовут Даниил Охлопков, и я расскажу про свой подход к написанию скриптов, извлекающих данные из интернета: с чего начать, куда смотреть и что использовать.
Написав тонну парсеров, я придумал алгоритм действий, который не только минимизирует затраченное время на разработку, но и увеличивает их живучесть, робастность, масштабируемость.
TL;DR
Запись видео UI автотестов, работающих в headless Chrome
2020-05-23 в 18:08, admin, рубрики: C#, Google Chrome, Puppeteer, qa automation, screencast, selenium, video capture, Тестирование веб-сервисовВсем привет!
В данной статье хочется рассказать о том, как была решена задача записи видео автотестов, работающих в headless Chrome (с записью в не headless режиме проблем быть не должно). Будет рассмотрено несколько разных подходов, рассказано про трудности и пути их решения.
Постановка задачи
- Тесты выполняются под Windows
- Тесты используют Selenium Web Driver + Headless Chrome
- Тесты запускаются в несколько потоков
Для упавших тестов нужно сохранить видео, при этом
- Время выполнения должно вырасти не более чем на 10%.
- Обойтись минимумом изменений в текущей имплементации
Если интересно решение, добро пожаловать под кат.
Читать полностью »
Node.js, Tor, Puppeteer и Cheerio: анонимный веб-скрапинг
2020-02-07 в 9:30, admin, рубрики: node.js, Puppeteer, Tor, Блог компании RUVDS.com, разработка, Разработка веб-сайтов, СheerioВеб-скрапинг — это метод сбора данных с веб-сайтов. Этот термин обычно используется в применении к автоматизированному сбору данных. Сегодня мы поговорим о том, как собирать данные с сайтов анонимно. Причина, по которой некто может захотеть анонимности в деле веб-скрапинга, заключается в том, что многие веб-серверы применяют определённые правила к подключениям с IP-адресов, с которых за некий отрезок времени выполнено какое-то количество запросов. Здесь мы будем пользоваться следующими инструментами:
- Puppeteer — для доступа к веб-страницам.
- Cheerio — для парсинга HTML-кода.
- Tor — для выполнения каждого запроса с различного IP-адреса.
Надо отметить, что правовые аспекты веб-скрапинга — вопрос непростой и часто неясный. Поэтому уважайте «Условия использования» тех страниц, данные которых вы собираете. Вот хороший материал на эту тему.
Подключаем онлайн-карты к навигатору на смартфоне. Часть 3 — OverpassTurbo
2019-07-23 в 15:31, admin, рубрики: Google Chrome, node.js, OpenStreetMap, ovepass, Puppeteer, веб-скрейпинг, Геоинформационные сервисы, карты, навигационные сервисы, онлайн-картыПревращаем созданный ранее скрипт в API для просмотра интерактивной карты с сайта OverpassTurbo.eu через навигационное приложение смартфона.
Полный цикл тестирования React-приложений. Доклад Авто.ру
2019-07-14 в 11:00, admin, рубрики: css, end-to-end, enzyme, java, javascript, jest, Puppeteer, React, ReactJS, selenium grid, Блог компании Яндекс, интеграционное тестирование, модульное тестирование, монорепозиторий, Тестирование веб-сервисовСтремление уйти от ручного регрессионого тестирования — хороший повод внедрить автотесты. Вопрос, какие именно? Разработчики интерфейсов Наталья Стусь и Алексей Андросов вспомнили, как их команда прошла несколько итераций и построила тестирование фронтенда в Авто.ру на базе Jest и Puppeteer: юнит-тесты, тесты на отдельные React-компоненты, интеграционные тесты. Самое интересное из этого опыта — изолированное тестирование React-компонентов в браузере без Selenium Grid, Java и прочего.
Алексей:
— Для начала надо немного рассказать, что такое Авто.ру. Это сайт по продаже машинок. Там есть поиск, личный кабинет, автосервисы, запчасти, отзывы, кабинеты дилеров и многое другое. Авто.ру — очень большой проект, очень много кода. Весь код мы пишем в большой монорепе, потому что это все перемешивается. Одни и те же люди делают схожие задачи, например, для мобильных и десктопа. Получается много кода, и монорепа нам жизненно необходима. Вопрос — как ее тестировать?
Жадный гном: Как я писал аналитику рынка в Lineage 2
2018-11-26 в 2:42, admin, рубрики: analytics, devops, docker, Grafana, kotlin, Ktor, lineage 2, node.js, nodejs, prometheus, Puppeteer, Игры и игровые приставки, монетизация игрВот и наступила осенне-зимняя пора. За окном дожди и желания проводить время на открытом воздухе все меньше и меньше. И вот приходит мне сообщение от товарища "А давай поиграем в Lineage 2?". И опять я, поддавшись ностальгии, согласился. Выбрали мы свеженький сервер на ру-офе и создали персонажей.
В отличии от World of Warcraft в Lineage 2 совершенно другая система добычи игровой валюты. Нужно круглыми сутками охотиться на монстров с целью получения наживы. Для меня было даже открытием, что для некоторых людей RMT (Real money trading) является чем то вроде работы. Также, в игре присутствует экономика, которую формируют игроки. Иными словами, можно заработать на купи-продай или же покупать дешевые ресурсы, из них делать вещи и продавать с наценкой. Так как для нас игра остается чем то вроде отдыха именно такой способ получения игровой валюты был выбран нами.
Чтобы покупать и продавать предметы игрок должен находиться online (Скриншот сверху). Соответсвенно, кто-то хочет побыстрее продать (дешевле) а кто-то побыстрее купить (дороже). А что если разница продать — купить положительная? Как раз этот пример и будет рассмотрен в статье как итог.
Однако, цены на рынке достаточно нестабильны и часто меняются. По этому существует вероятность купить что то "дешево" и потом еще дешевле продать и отрицательной прибылью. Этого мы и стараемся избежать. В общем было решено написать систему аналитики рынка и разобраться с парочкой интересных мне технологий.
Spoiler:
В статье будут использованы следующие технологии
Docker, DigitalOcean, NodeJs, Ktor, Prometheus, Grafana, Telegram bot notification
Опыт 2 миллионов headless-сессий
2018-06-07 в 18:18, admin, рубрики: browserless, chrome, headless-браузер, Puppeteer, браузерыОпубликовано 4 июня 2018 года в корпоративном блоге browserless
Рады сообщить, что недавно мы преодолели рубеж в два миллиона обслуженных сессий! Это миллионы сгенерированных скриншотов, напечатанных PDF и протестированных сайтов. Мы сделали почти всё, что вы можете придумать делать с headless-браузером.
Хотя приятно достичь такой вехи, но на пути оказалось явно много накладок и проблем. В связи с огромным объёмом полученного трафика хотелось бы сделать шаг назад и изложить общие рекомендации для запуска headless-браузеров (и puppeteer) в продакшне.
Вот некоторые советы.
Читать полностью »
Модульное тестирование интерфейсов в Headless Chrome. Лекция Яндекса
2018-04-08 в 7:14, admin, рубрики: chrome, headless browser, javascript, mocha, nightwatch, phantomjs, Puppeteer, selenium, Блог компании Яндекс, интеграционное тестирование, интерфейсы, Тестирование веб-сервисов, юнит-тестированиеЧтобы непрерывно улучшать большие клиентские интерфейсы, нужна мощная система автотестов. Разработчик Яндекса Дмитрий Андриянов dima117 кое-что про это знает — пару месяцев назад он поделился своим опытом на Я.Субботнике в Нижнем Новгороде.
— Сегодня я расскажу, как мы в Директе пишем модульные тесты на веб-интерфейс. Мы в целом посмотрим, чем тесты на интерфейс отличаются от других тестов. Рассмотрим два подхода к написанию тестов: с помощью Selenium и с помощью Headless-браузеров. И в конце покажу инструмент, который мы написали в Директе для запуска тестов в Headless Chrome.
Читать полностью »
Unit-тестирование скриншотами: преодолеваем звуковой барьер. Расшифровка доклада
2018-03-14 в 10:05, admin, рубрики: components, gif, Git, javascript, jest, PNG, Puppeteer, React, teamcity, unit-testing, Блог компании Avito, Программирование, Разработка веб-сайтов, Тестирование веб-сервисовТестировать регресс верстки скриншотами модно, этим никого не удивишь. Мы давно хотели внедрить этот вид тестирования у себя. Всё время смущали вопросы простоты поддержки и применения, но в большей степени — пропускная способность решений. Хотелось, чтобы это было что-то простое в использовании и быстрое в работе. Готовые решения не подошли, и мы взялись делать свое.
Под катом расскажем, что из этого вышло, какие задачи решали, и как мы добились того, чтобы тестирование скриншотами практически не влияло на общее время прохождения тестов. Этот пост — расшифровка доклада, который прозвучал на HolyJS 2017 Moscow. Видео можно посмотреть по ссылке, а почитать и посмотреть слайды — далее.