Пока я не придумал ничего лучше, чем Cron. И, дабы не переписывать расписание, настроенного под Linux на Windows, меня устроила бы обертка того и другого..., например python-crontab.
Всего здесь с десяток ссылок ...для дальнейших размышлений...
В iPython мои (черновики) упражнения с Python, в разделе "Mining" собраны материалы по R, Rapid Miner, Weka, Gate..., в "Projects" фрагменты старых и заготовки для новых исследований... записано для себя, открыто для всех...
четверг, 28 мая 2015 г.
Размышляем на тему Python + Cron
воскресенье, 22 февраля 2015 г.
Здесь примеры кода для методов, которые я использую для чистки строк и строк - элементов списка
Вот большая часть примеров: filter(None, infi.split(' ')) map(str.strip, finfi) ' '.join(mystring.split()) mystring.replace('mess','',[n,m]) str.translate(table[, deletechars]) Это только те, которые я использовал. Но есть еще много других возможностей. Их надо искать по ссылкам на документацию... Часть сылок не наверху (как обычно), а ниже в тексте...
вторник, 17 февраля 2015 г.
Как парсить текстовые строки переменной длины (после отравления блинами)?
Таблица продаж автомобилей после конвертации из PDF файла представляет собой набор строк. Но каждая строка может начинаться с одного или нескольких слов названия марки (фирмы). Получается, что в строках может быть от 7 до 11 слов. Как загнать их в 7 столбцов? Задачка детская, надо просто знать мат.часть, вот ответ iii.partition(' ')[2].split(), len(iii.partition(' ')[2].split()) Но я никак не мог догадаться и перерепробовал RE... Здесь примеры моих тупых поисков и текстовый файл
четверг, 12 февраля 2015 г.
Читам 5 отличных статей про subprocess Python и смотрим три видеоролика
Нужно было выполнить рутинную работу по конвертации pdf файлов и последующео парсинга текстовых строк в таблицы. Мне не хотелось плодить временные файлы для каждого этапа конвертации, потому я сначала посмотрел видео и с большой неохотой прочитал таки малопонятную документацию..., зато потом с удовольствием прочитал все
среда, 11 февраля 2015 г.
Найти все имена файлов в папке при помощи os.listdir(path)
Взять все (однотипные) файлы в папке, да и конвертировать. Как их перебирать? Можно все (вместе с содержимым файлов) загнать в словарь... А молжно проще... Здесь фрагменты кода с os.listdir(path) и итерации по файлам в папке
среда, 21 января 2015 г.
Первый вариант шаблона для подбора и проверки XPath запросов и команды для нормализации строк
На примере carmailPrice. Здесь мы пробуем XPath запросы и тут же чистим полученные списки от лишних проблеов и переносов строк. Возвращаемся к задаче парсинга страницы bmw_mail. Сначала "фотографируем" страницу, потом копипастим сюда фрагмент кода, потом подбираем XPath запросы, потом формируем цепочки для чистки текстовых строк ' '.join(), replace(), split(), strip() эту чистку гордо именуем нормализацией. Работа муторная, но пост наглядный... Потому что с lxml html.fromstring(In[2]) ... а вссылках - примеры кода для "remove ALL whitespace from String"
среда, 14 января 2015 г.
Свалка удачных маленьких экспериментов, результаты которых я собираюсь часто использовать
Здесь я хотел подготовить код для краулера bmw_mail, не удержался и опробовал сразу несколько разных идей: import HTML, import HTML,
''.join(tree.xpath('//span[@class="rank"]/i/text()')), codecs, lxml, requests, .replace('\n','').encode('utf8'), print ''.join(this_link).encode('utf8')
Получилось все, но этот пост не тянет даже на черновик. Здесь просто сумбур из фрагманты кода, но зато я здесь изобрел сразу несколько велосипедов.
вторник, 13 января 2015 г.
Regular Expressions Python ... и мой перечень главных команд
Конспект первой части доументации Python по теме "Регулярные выражения" есть перевод на Хабре. На вторую часть терпения не хватило, но надо помнить, что я прочитал HowTo (а есть еще аполный справочник), и то, что я не включил сюда такие мощные функции, как "Splitting Strings", "Search and Replace"
вторник, 6 января 2015 г.
Python webbrowser - можно ли скачивать файлы в дефолтный браузер, а потом сохранять?
Это паллиативный вариант? Пока не освоен jsnode? Надо ли ожидать, что появится новая библиотека с браузером Python+Javascript.Поэтому здесь есть еще ссылка на CEF Python. А начинается все с примера кода для открытия браузера и распечатки документации dir(),help()
Первое впечатление разочаровывающее..., но оно же и поверхностное
понедельник, 5 января 2015 г.
Пример использования Python subprocess для выполнения команд консоли Windows
Набрел на этот модуль когда задался вопросом: "Хорошо бы перехватывать значения констант из пространтства имен экземпляра консоли"... На эту библиотеку надо обратить внимание, потому что:
This module allows you to spawn processes, connect to their input/output/error pipes, and obtain their return codes. This module
intends to replace several other, older modules and functions, like: os.system os.spawn os.popen popen2. commands.
Фрагменты документации из OS (Python)
Здесь можно посмотреть распечатки dir() help() модуля os, os.sys, os.system, os.path ... Библиотека разветвленная, а времени на нее никогда не хватает. Так что просматривать этот пост надо бы при каждом удобном сучае.
воскресенье, 4 января 2015 г.
Копипаст примеров и фрагментов из документации urllib Python
Снова читаю urllib, снова не хватает времени, потому делаю заготовки для последующего воспроизведения примеров из документации. Здесь же и ссылки на каждый раздел и пример из документации
суббота, 3 января 2015 г.
Cтроковыe и встроенные функций Python. Ссылки и примеры для чистки спарсенных фрагментов. Регулярные выражения - ссылки на хороший мануал
После парсинга html-страниц появляется и мусор. Например, как убрать ненужные переносы строк, объединить текстовые фрагменты списков..., сначала надо пробовать "простейших" (быстрые встроенные функции и ...типы...) join(),map(), replace(),str.rstrip()... а уж потом пускаться во все тяжкие с regexp. Поэтому здесь примеры с простейшими и только ссылки для изучения regexp.
Две части пособия с Хабра, два онлайн сервиса отладки, Справочник Python, ходовые примеры от Гугла
Some people, when confronted with a problem, think «I know, I'll use regular expressions.» Now they have two problems.
воскресенье, 30 ноября 2014 г.
Topmail Spider with ScrapyFileLogObserver and traceback
Здесь я привожу первый вариант решения (фрагменты паука) в котором компилятор выводит сообщения в один файл, а ошибки в другой. При этом все (логирование) дублируется в консоли.
Кроме того, traceback выводит подробные сведения о перехваченных ошибках.
Как вывести в лог описания ошибок успешно перехваченных в "exceptions"?
Например, у меня выскакивала ошибка, я ее перехватил, но теперь в сообщениях консоли вместо имени модуля..., номера строки, имени переменной... только мои записи о перехвате, ... теперь, чтобы вытащить информацию об ошибке надо использовать методы из библиотеки traceback.
суббота, 29 ноября 2014 г.
Примеры настройки логирования в Scrapy и картинка "loggers, handlers, filters, and formatters"
"If you’re ready for that, grab some of your favourite beverage and carry on"... Так я начал читать документацию "дебаггинг для продвинутых", поскольку предстоит писать в длиннющие логи... Сначала я нашел на Stackoverflow варианты вывода логов в фва файла, а потом прочитал еще и мануалы Python...
вторник, 25 ноября 2014 г.
О конструировании списков в Python и хорошем стиле программирования
Здесь я "открыл", что конструктор item['new']=["" for j in range(len(iu))] выдает список, который ничуть не короче, чем item['new']=["WoW" for j in range(len(iu))] И весь этот пост наполнен упражнениями, ...рассуждениями пытливого туповатого самоучки, который завидует тем, кому преподы все подают на блюдечке...
воскресенье, 23 ноября 2014 г.
Как лучше парсить, чистить и склеивать строки вида 'http://127.127.0.1:8080'
Сразу вспомнилось про find-replace, ранее нашел split, "вспомнил", что каждая строка - это (упорядоченный)список, значит можно манипулировать индексами s[i] s[i:j] по позициям элемента... А это неправильно, не список, а КОРТЕЖ... Значи, подстроки нельзя изменять простым присваиванием...
Как парсить date и преобразовывать строки в объекты datetime.datetime
В документации Python все подробно описано, в этом посте примеры для использования в парсерах. Как строку преобразовать в объект даты... Здесь и табличка со всеми директивами, напрмир %A Weekday as locale’s full name (Sunday, Monday... )
вторник, 11 ноября 2014 г.
Инструкция "class" в Python - это не объявления, ...class создает объект и является неявной инструкцией присваивания (конспект гл. 28)
...в отличие от инструкции в C++, в языке Python она не является объявлением. Подобно инструкции def, инструкция class создает объект и является неявной инструкцией присваивания – когда она выполняется, создается объект класса, ссылка на который сохраняется в имени, использованном в заголовке инструкции.