Как стать автором
Обновить

Fitter —  сшиватель API/Website's, часть личного проекта которую хотел опенсорснуть

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3K
Всего голосов 5: ↑4 и ↓1+5
Комментарии9

Комментарии 9

Возможно выбрал не лучшее время для охвата аудитории

Почему?

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

Именно поэтому много скрейперов - это код на питоне (вставьте другой язык), где множество ветвлений/условий/проверок

Спасибо большое за идею, я совершенно про такое забыл, я добавлю в поля optional параметр который будет лестинца с приоритетом(первый который не пустой будет выбран)
Понимаю не все это решит в коде все таки легче условия описать, но чуток упростит

Добавил такую возможность в инструмент

Я немного ужал ваш конфиг в 4 раза:

limits playwright_instance 3
out Server
	method \GET
	url \http://www.citymayors.com/gratis/uk_topcities.html
	out Array
		in xpath \//table//table//tr[preceding-sibling::*]
		out Object
			name String xpath \td[1]//font
			population String xpath \td[2]/font
			temperature Chromium
				in String xpath \td[1]//font
				url \https://openweathermap.org/find?q={in}
				attempts 3
				timeout 30
				wait 30
				install false
				out FireFox
					in String xpath \//div[@id='forecast_list_ul']//td/b/a/@href
					url \https://openweathermap.org{in}
					attempts 4
					timeout 30
					wait 30
					install false
					type_of_wait \networkidle
					out String css \//div.current-temp span.heading

Спасибо большое, это принципе очень похоже на YAML который уже поддерживается(я больше говорил про сложность понимания вариантов, чем про размер)

Ну и у вас опущена, ну и они не совместимы в вашем случае это подошло бы для запуска бинарника Firefox, а в нашем случае Firefox как часть playwright

Но все таки я имел ввиду понимание его неделе размер(согласен чем меньше размер легче понять, попозже перепишу на yaml)

Это совсем не ямл. Тому, кто будет писать эти конфиги, ему не нужно знать ни про какой playwrite, playleft или какую ещё утилиту для управления браузером вы захотите использовать. Chromium и Firefox - это абстрактные адаптеры. Можно даже добавить адаптер Browser для случая, когда не важно каким браузером загружать данные. Например, он может брать первый освободившийся.

Ну тоесть таких абстракций много, я больше пока склоняюсь к jsonnet, для более юзабельной конфигурации

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории