plusmorozov
Ты видишь? Тоска нелечимая Стоит у меня за спиной. Уедем в деревню, любимая, Уедем дышать тишиной. ____________________ О жизни в деревне
На Пикабу
поставил 902 плюса и 0 минусов
отредактировал 0 постов
проголосовал за 0 редактирований
13К рейтинг 87 подписчиков 869 комментариев 58 постов 52 в горячем
857

Вентиляция улья пчелами

Вентиляция улья обеспечивает правильный газообмен внутреннего пространства с окружающей средой, регулирует уровень влажности, в летний зной не дает гнезду перегреваться.

105

Хорошо в деревне летом... Фотопост. Часть 7

Хорошо в деревне летом... Фотопост. Часть 7 Деревня, Сельское хозяйство, Урожай, Домик в деревне, Фрукты, Овощи, Село, Сельская жизнь, Длиннопост
Хорошо в деревне летом... Фотопост. Часть 7 Деревня, Сельское хозяйство, Урожай, Домик в деревне, Фрукты, Овощи, Село, Сельская жизнь, Длиннопост
Хорошо в деревне летом... Фотопост. Часть 7 Деревня, Сельское хозяйство, Урожай, Домик в деревне, Фрукты, Овощи, Село, Сельская жизнь, Длиннопост
Хорошо в деревне летом... Фотопост. Часть 7 Деревня, Сельское хозяйство, Урожай, Домик в деревне, Фрукты, Овощи, Село, Сельская жизнь, Длиннопост
Хорошо в деревне летом... Фотопост. Часть 7 Деревня, Сельское хозяйство, Урожай, Домик в деревне, Фрукты, Овощи, Село, Сельская жизнь, Длиннопост
Показать полностью 5
524

Качаем мёд. Из улья в банку

285

Сорнякам тут не место

В этом году всё-таки нашел время для засеивания газона на ещё одном участке сада. Сорняки перед посадкой не травлю, перепахиваю мотоблоком участок, выравниваю, засеиваю, прохожусь граблями для заглубления семян, притаптываю, ежедневно поливаю.

Сорнякам тут не место Газон, Трава, Сад, Деревня, Сельская жизнь, Длиннопост
Сорнякам тут не место Газон, Трава, Сад, Деревня, Сельская жизнь, Длиннопост
Сорнякам тут не место Газон, Трава, Сад, Деревня, Сельская жизнь, Длиннопост
Сорнякам тут не место Газон, Трава, Сад, Деревня, Сельская жизнь, Длиннопост
Сорнякам тут не место Газон, Трава, Сад, Деревня, Сельская жизнь, Длиннопост
Сорнякам тут не место Газон, Трава, Сад, Деревня, Сельская жизнь, Длиннопост
Сорнякам тут не место Газон, Трава, Сад, Деревня, Сельская жизнь, Длиннопост

А этот газон посеял 2 года назад

Сорнякам тут не место Газон, Трава, Сад, Деревня, Сельская жизнь, Длиннопост
Сорнякам тут не место Газон, Трава, Сад, Деревня, Сельская жизнь, Длиннопост

Семена были такие

Сорнякам тут не место Газон, Трава, Сад, Деревня, Сельская жизнь, Длиннопост
Показать полностью 10
17

Электронаващиватель рамок из трансформатора от Smart UPS 1000

Электронаващиватель рамок из трансформатора от Smart UPS 1000 Пасека, Пчеловодство, Лазерная резка, Пчелы, Деревня, Сельская жизнь, Сельское хозяйство, Видео

Макет корпуса лежит здесь: https://cloud.mail.ru/public/AQ7H/mYfkcU1bP

Показать полностью 1
28

Нужны рекомендации по парсингу сайта экологического мониторинга

На территории соседнего поселка действуют два нефтеналивных терминала, которые изрядно портят жизнь местным жителям регулярными выбросами сероводорода в атмосферу.

Нужны рекомендации по парсингу сайта экологического мониторинга Программирование, Python, Selenium, Экология, Гражданская позиция, Длиннопост

Местные активисты добились установки двух стационарных постов системы контроля атмосферного воздуха (СКАТ). Эти самые СКАТы периодически фиксируют превышения предельно допустимой концентрации (ПДК) сероводорода и диоксида серы в воздухе. Информация о текущем состоянии воздуха со СКАТов выводится в единую систему экологического мониторинга области (ЕСЭМ) http://ecomap.orb.ru/map/. Но, к сожалению, министерство экологии и экологическая служба доступа к архиву с информацией о превышениях экоактивистам не дают и статистику по превышениям ПДК сильно занижают, тем самым замалчивая существующую проблему.


Для того, чтобы иметь информацию о превышениях и оперировать ей на встречах с министерством и нефтяниками, явно указывая им на недостоверность их отчетов, я накидал код на питоне с использованием selenium (код ниже).


На данный момент принцип таков: открывается сайт системы мониторинга, кликается нужный СКАТ, делается скрин данных. И так по списку указанных ID СКАТов (меня интересуют только 2 из 44). Информация на сайте обновляется каждые 20 минут, так же каждые 20 минут запускается скрипт, который делает скрин, периодически я просматриваю скрины на факт превышения.


Что хочется реализовать:

1. Сохранять скрины только по факту превышения (это легко, руки пока не дошли).

2. Писать все параметры со СКАТа в базу сайта (antineft.ru), для дальнейшего анализа и построения отчетов/графиков.

3. Реализовать рассылку писем/смс местным жителям в случае наступления факта превышения ПДК.


К чему, собственно, пост: как бы вы решили такую задачу? Какие инструменты использовали?


import enum

from selenium import webdriver

from selenium.webdriver.common import action_chains

from selenium.webdriver.common.action_chains import ActionChains

from time import sleep

from PIL import Image

import pyautogui as pag

import re

import datetime

import os


#ID всех постов системы контроля атмосферного воздуха (СКАТ)

#skat_list_ID = [20,21,36,40,30,16,4,38,1,43,32,2,22]


#ID интересующих СКАТов

skat_list_ID = [22,20]


#Структура для хранения данных со СКАТов

data_fileds = {'Место':'','Дата':'','Время':'','Температура':'','Атмосферное давление':'','Влажность':'','Направление ветра':'','Скорость ветра':'','Осадки, мм':'','Оксид углерода, мг':'','Оксид углерода ПДК':'','Оксид азота, мг':'','Оксид азота ПДК':'','Диоксид азота, мг':'','Диоксид азота ПДК':'','Диоксид серы, мг':'','Диоксид серы ПДК':'','Сероводород, мг':'','Сероводород ПДК':'','Метан, мг':'','Метан ПДК':'','Сумма углеводородов, мг':''}

def get_place_date_time (string):

string_split = string.split(sep=' ')

data_fileds['Место'] = string_split[0]

#data_fileds['Дата'] = string_split[1]

#data_fileds['Время'] = string_split[2]


def save_screenshot(string):

# определяем начальные координаты найденного окна

location = data.location

# получаем размеры найденного окна

size = data.size

# сохраняем скриншот всей страницы

FullPageScreenshot = now.strftime("%Y-%m-%d-%H-%M-%S")+string+'.png'

path = 'C:/Python/'

browser.save_screenshot(path+FullPageScreenshot)

# вычисляем аргументы для передачи в функцию по обрезке скриншота

x = location['x']

y = location['y']

w = x + size['width']

h = y + size['height']

# открывает скриншот страницы

fullImg = Image.open(path+FullPageScreenshot)

# вырезаем нужную часть изображения

cropImg = fullImg.crop((x, y, w, h))

cropImg.save(path+'_'+FullPageScreenshot)

os.remove('C:/Python/'+FullPageScreenshot)


#------------------------------------------------------------------------------------

browser = webdriver.Chrome('chromedriver.exe')

browser.set_window_size(1200, 1000)

browser.get('http://ecomap.orb.ru/map/')


#текущее время

now = datetime.datetime.now()

for q in skat_list_ID:

try:


#обработка Красный Коммунар-2, клик по координатам из-за близкого расположения рядом 2 СКАТов на карте

if q == 20:

sleep(3)

ActionChains(browser).move_by_offset(645, 330).click().perform()

sleep(3)


# ищем открывшееся после клика окно с данными о ПДК

data = browser.find_element_by_xpath('//*[@id="map-107868-overlays"]/div[2]/div')

save_screenshot('kk2')

btn_close = browser.find_element_by_class_name("v-window-closebox")

btn_close.click()

sleep(1)

browser.refresh()

else:


#поиск следующей точки и ее центрирование на экране

sleep(2)

element = browser.find_elements_by_xpath ("//*[@id='map-107868']/div/div[2]/div/div[2]/div/div/div[1]/div/div/div/div/div/div/div[1]/div/div/div[1]/div[4]/div")

pag.moveTo(600,500)

pag.scroll(-500)

sleep(2)


#установка видимого курсора над выбранным элементом

canvas_x_offset = browser.execute_script("return window.screenX + (window.outerWidth - window.innerWidth) / 2 - window.scrollX;")

canvas_y_offset = browser.execute_script("return window.screenY + (window.outerHeight - window.innerHeight) - window.scrollY;")

pag.moveTo (element[q].rect["x"] + canvas_x_offset + element[q].rect["width"] / 2,

element[q].rect["y"] + canvas_y_offset + element[q].rect["height"] / 2)

sleep(1)

pag.scroll(700)

sleep(2)

element[q].click()

sleep(2)


#обработка информации со СКАТа


#ищем открывшееся после клика окно с данными о ПДК

data = browser.find_element_by_xpath('//*[@id="map-107868-overlays"]/div[2]/div')


#перевожу полученные данные в текст

sensor_data = str(data.text)

sensor_data_string = sensor_data.splitlines()


#получаю название населенного пункта, дату и время

get_place_date_time (sensor_data_string[0])

save_screenshot(data_fileds['Место'])

btn_close = browser.find_element_by_class_name("v-window-closebox")

btn_close.click()

sleep(1)

browser.refresh()

except Exception as ex:

print ('Исключение: '+ str(ex))

browser.refresh()

browser.quit()

Показать полностью
28

На пасеке

113

Так выглядит неплодная (молодая) пчелиная матка

Для сравнения: Так выглядит плодная пчелиная матка

51

Хорошо в деревне летом... Фотопост. Часть 6

Хорошо в деревне летом... Фотопост. Часть 6 Деревня, Натуральные продукты, Сельское хозяйство, Виноград, Яблоки, Облепиха, Сельская жизнь, Урожай, Длиннопост
Хорошо в деревне летом... Фотопост. Часть 6 Деревня, Натуральные продукты, Сельское хозяйство, Виноград, Яблоки, Облепиха, Сельская жизнь, Урожай, Длиннопост
Хорошо в деревне летом... Фотопост. Часть 6 Деревня, Натуральные продукты, Сельское хозяйство, Виноград, Яблоки, Облепиха, Сельская жизнь, Урожай, Длиннопост
Хорошо в деревне летом... Фотопост. Часть 6 Деревня, Натуральные продукты, Сельское хозяйство, Виноград, Яблоки, Облепиха, Сельская жизнь, Урожай, Длиннопост
Хорошо в деревне летом... Фотопост. Часть 6 Деревня, Натуральные продукты, Сельское хозяйство, Виноград, Яблоки, Облепиха, Сельская жизнь, Урожай, Длиннопост
Хорошо в деревне летом... Фотопост. Часть 6 Деревня, Натуральные продукты, Сельское хозяйство, Виноград, Яблоки, Облепиха, Сельская жизнь, Урожай, Длиннопост

Урожай не этого года)

Показать полностью 6
67

Пчела - ея жизнь и главные правила толковаго пчеловодства

Наткнулся я как-то на эту книгу в электронном варианте. И так она мне понравилась, что обратился в типографию с заказом на ее печать.

Пчела - ея жизнь и главные правила толковаго пчеловодства Пчеловодство, Литература, Книги, Сельское хозяйство, Знания, Пасека, Пчелы, Длиннопост

Автор - выдающийся российский ученый, химик, пчеловод, член Петербургской Академии Наук - Александр Михайлович Бутлеров. Его по праву можно назвать родоначальником отечественной системы рационального пчеловодства. Не смотря на обилие у автора научных званий, книга написана простым, доступным языком, читать очень приятно, легко и познавательно. Вот цитата из раздела "Отъ составителя": "Сам я учился не по одним книгам только, а около пчел; возился с ними немало, своими руками на пчельнике, и поневоле хорошо познакомился и с пчелками, и с их жалом. Даром ведь никакая наука не дается. Понаучившись кой-чему, хочу я все рассказать толком, так чтобы и простому неученому человеку было понятно". И, действительно, Алекснадру Михайловичу это удалось, вся информация структурирована, разложена по полочкам. С момента издания книги прошло уже 133 года, а информация по-прежнему актуальна. Воистину монументальный труд. Очень рекомендую к прочтению.

Электронную версию положил сюда: https://cloud.mail.ru/public/m4ay/Te8CmxfKp

Пчела - ея жизнь и главные правила толковаго пчеловодства Пчеловодство, Литература, Книги, Сельское хозяйство, Знания, Пасека, Пчелы, Длиннопост
Пчела - ея жизнь и главные правила толковаго пчеловодства Пчеловодство, Литература, Книги, Сельское хозяйство, Знания, Пасека, Пчелы, Длиннопост
Пчела - ея жизнь и главные правила толковаго пчеловодства Пчеловодство, Литература, Книги, Сельское хозяйство, Знания, Пасека, Пчелы, Длиннопост
Показать полностью 4
Отличная работа, все прочитано!