Здесь я привожу первый вариант решения (фрагменты паука) в котором компилятор выводит сообщения в один файл, а ошибки в другой. При этом все (логирование) дублируется в консоли.
Кроме того, traceback выводит подробные сведения о перехваченных ошибках.
В iPython мои (черновики) упражнения с Python, в разделе "Mining" собраны материалы по R, Rapid Miner, Weka, Gate..., в "Projects" фрагменты старых и заготовки для новых исследований... записано для себя, открыто для всех...
воскресенье, 30 ноября 2014 г.
Topmail Spider with ScrapyFileLogObserver and 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... )
суббота, 22 ноября 2014 г.
Между делом восстановил аккаунт GitHub, ума не приложу, что с ним делать
Действительно - сервис отличный, знать его надо..., обнаружил консоль и отличные руководства..., но деньги платить за сокрытие моего "рабочего" кода... это пижонство. Получается, что публиковать там нечего? Ну как тут станешь приличным кодером?
четверг, 20 ноября 2014 г.
Pydiction - это плагин к Vim, который "Tab-complete your Python code"
Сначала установил (здесь написано, как), а он не работает в Windows. Здесь собраны все материалы для того, чтобы позже прочитать и наладить...
среда, 19 ноября 2014 г.
Видео "Python in VIM" и список редакторов с автозаполнением..., и штатная IDLE Python
Я немного научился пользоваться Spyder (и IPNotebook, естественно). "Немного" - это значит без затруднений. По мере того, как мои проекты стали разрастаться, понадобилось открывать сразу два-три проекта. Я начал было искать "легкие "IDLE" и редакторы с подсказками и автозаполнением...
Установил Komodo, посмотрел видео про Python in VIM, нашел целый список редакторов на StackOverflov... Потом вспомнил про штатный IDLE, скопировал оттуда приемы работы с автозаполнением и подсказками... Действительно, раз есть "штатные приемы" автозаполнения и вызова подсказок, то все IDLE должны их использовать...
вторник, 18 ноября 2014 г.
Смотрим видео "jQuery + Node.js + Phantom.js = Automation Awesomesauce" и вспоминаем про node webkit
Посмотрел только начало..., потом вспоминал Node-webkit, здесь много ссылоко и задел для будущего обучения
In this presentation, Travis will walk you through how jQuery can be used in conjunction with an incredible headless browser technology called Phantom.js. When pairing these two technologies together, you get a fantastic testing and automation framework, but we won't stop there... by mixing these with the backend Javascript framework called Node.js, we produce an extremely powerful testing and automation framework that is both efficient, fun, and easy to use.
понедельник, 17 ноября 2014 г.
Зачем нужны Scrapy Feed exports и CsvItemExporter
Первый вариант настройки в документации, второй - super(SlybotCSVItemExporter, self).init(args, *kwargs) - чемпион ГитХаба, для начала я воспроизвел второй вариант от github agrimrules/Python-Web-Crawler но воспроизвел в посте Пробовал "Scrapy feed exporter" ... а до первого варианта здесь так и не дошел... Зато в этом посте около 30 ссылок !
воскресенье, 16 ноября 2014 г.
Попробовал Scrapy HTTPCACHE middleware. Понравилось
Включается FHTTPCACHE_ENABLED, два режима (политики) кэширования, три вида хранилищ, возможность управлять кэшированием для (схем) типов файлов, протоколов ответов серверов, задавать время перезагрузки кэша ...
пятница, 14 ноября 2014 г.
Пробовал "Scrapy feed exporter" Скачал Python-Web-Crawler и сразу же запустил
Код в feedexport.py показался мне необычным - super(CSVkwItemExporter, self).init(args, kwargs) Здесь пример паука, который формирует csv таблицу с двумя последовательными полями, но в строке запуска нужно указать scrapy crawl njit -o 13nov.csv -t csv
четверг, 13 ноября 2014 г.
Schtasks - управления заданиями из командной строки Windows... и CronNT
Помимо графической оболочки есть еще и Schtasks с отличной справкой, часть которой здесь и распечатана. Оказывается, что можно посмотреть на все задания в системе. А еще есть утилита CronNT, которую можно установить , как службу Windows.
вторник, 11 ноября 2014 г.
Инструкция "class" в Python - это не объявления, ...class создает объект и является неявной инструкцией присваивания (конспект гл. 28)
...в отличие от инструкции в C++, в языке Python она не является объявлением. Подобно инструкции def, инструкция class создает объект и является неявной инструкцией присваивания – когда она выполняется, создается объект класса, ссылка на который сохраняется в имени, использованном в заголовке инструкции.
К вопросу об использовании yield вместо return
Для понимания того, как оуществляются отложенные операции. Классический пример - функция на каждой итерации цикла передает результат другой функции, а сама ждет следующего вызова... Здесь конспект из главы 20 Лутца.
понедельник, 10 ноября 2014 г.
Наступил на грабли "динамической типизации", чтобы понять про разделяемые ссылки, кэширование чисел и строк, "varargs"... читаем "Лутца"
Начал было присваивать значения новому "столбцу" с Item['adress'] = Item['ip'], а потом сформировал в цикле новые значения вида Item['adress'][i]=... И удивился, когда обнаружил, что поменялся и Item['ip'] Однако... все здесь объекты, а имена переменных - это только ссылки (точнее - указатели) на эти объекты (а не на метки областей памяти)...
суббота, 8 ноября 2014 г.
Обработка исключений в Питон. Примеры из книги М. Лутца и help(exceptions)
В книге исключениям посвящены три главы. Здесь заметки при чтении первой и второй... Пока не вижу смысла нырять глубже
Исключения в языке Python – это высокоуровневый инструмент управления потоком выполнения. Они могут возбуждаться интерпретатором или самой программой – в любом из этих случаев их можно игнорировать (что вызовет срабатывание обработчика по умолчанию) или перехватывать с помощью инструкций try (для обработки в своем программном коде).
пятница, 7 ноября 2014 г.
Починяем BIOS на старых примусах типа HP Pavilion dv5-1000us
У нашей Гали тихо сдох ноутбук. Перестал загружаться после праздников. Замена батарейки BIOS не помогла. Встал вопрос о перепрошивке. Гуглопоиск "восстановление биос на ноутбуке hp" неожиданно быстро вывел на толковый пост. Казалось бы, для восстановления\обновления BIOS идеально подошла бы "загрузочная" флешка, вставил, нажал, выбрал... и все восстановилось. Такая флешка у HP есть, но за деньги... А наши умельцы сконструировали халявный бубен, коим я и воспользовался.
понедельник, 3 ноября 2014 г.
Как я учился, чтобы исправить свои дурацкие ошибки... и совершал новые при отладке в пауке XMLFeed...
В пауке XMLFeed... решил поробовать создать новый столбец из свежеспарсенного словаря списков... Пишем файл pipeline.py в котором фильтруем записи о серверах по времени, типу прокси и стране. Потом записываем результат в виде строк "http://777.77.77.77:8080" в текстовый файл. В процессе работы выскакивают ошибки, я быстро ликивидирую безграмотность перечитывая и конспектируя книгу Лутца. Сроки поджимают, стоит ли продолжать ликбез? Насколько он необходим?
суббота, 1 ноября 2014 г.
Сначала надо получить список атрибутов dir(), а потом вытащить строки в тройных кавычках при помощи help()
Сначала командой dir() распечатываем список атрибутов объектов. Потом функцией help(), или .__doc__ вытаскиваем строки комментариев из атрибута (или) объекта. Help() - это обертка __doc__? Следует помнить также, что функция help может извлекать информацию не только из встроенных, но и из любых других модулей (в том числе - моих).
Кроме того, обычно отдельно online поставляется подробная документация в HTML формате - это документация, которую мы читаем обычно на сайте (но устаревшая). Еу не надо путать с PyDoc - это всего-лишь HTML примочка для чтения .doc