Рубрика «python» - 345

Кодим безумный пассивный сниффер в виде модуля для Python

Сразу скажу: то, чем мы с вами будем здесь заниматься, не претендует, скажем, на какую-то промышленную применимость. Более того, я признаю, что мой код в данном примере может быть ужасен, страшен и ненужен. И тем не менее — почему бы не поперехватывать пакеты посреди недели? Так, слегка.

Итак, сегодня мы вот что наколдуем:

1. Реализуем простейший пассивный перехватчик пакетов для TCP и UDP
2. Засунем его в C-библиотеку в виде расширения для Python
3. Приделаем ко всему этому интерфейс итератора, дабы байты сыпались, как из рога изобилия
4.…
5. PROFIT!Читать полностью »

Со времени публикации новости о выходе Google App Engine 1.6.0 прошло уже много времени. А между прочем вышло 5 обновлений, каждое из которых принесло много вкусного и интересного. Попробую восполнить этот пробел.

Читать полностью »

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

Выбор на самом деле действительно нелегкий. Изначально все проекты мы разрабатывали на PHP. Но со временем накапливалось недовольство данным языком. По большому счету не устраивала скорость разработки и комфортность работы с ним. Даже элементарно на уровне синтаксиса языка, приходится набирать много лишнего. Эти $ перед переменными, -> для доступа к методу или члену класса, и множество мелочей, которые раздражали, а иногда и бесили.

Формально, даже трудно передать, чем данный язык не устраивал. На любое утверждение или пример, найдется более грамотный специалист и поклонник PHP, который возразит: что надо делать не так, а вот так и все нормально будет, или вообще что это не проблема, а наоборот достоинство. Просто скажу так — этот язык перестал нравиться исключительно подсознательно, вот неприятно на нем писать и все. Не приносит работа удовлетворение.
Читать полностью »

Делал я недавно доклад (на Percona Live). И как-то ночью (jet-lag все-таки) подумал, что неплохо бы как-нибудь видеть свои комментарии к слайдам — подсказки — и переключать слайды не подходя к ноутбуку. Чудо-устройства, чтоб и слайды переключало и комментарии показывало, у меня не было. Но был смартфон с Андроидом. Гугл-маркет разочаровал. Большинство подобных приложений работало только с PowerPoint, для LibreOffice я нашел только одно, платное, и выглядело оно как-то не так.

Но есть простое решение — браузер. Можно поднять http-сервер на ноутбуке, зайти с телефона, и по ссылкам переключать слайды. И будет работать не только с Андроидом, а и с яблочными, и с виндофонами. Да вообще смартфон не нужен, можно хоть через WAP заходить, или с другого ноутбука.
Читать полностью »

Никак не могу дописать документацию по Grab:Spider — это часть библиотеки Grab — для написания асинхронных пауков. Подумал выкладывать куски документации на хабрахабр. Думаю, с некоторым фидбэком дело быстрей пойдёт. На данный момент в документации есть лишь введение, описывающие в общих чертах, что за это за зверь такой Grab:Spider. Его и выкладываю.Читать полностью »

Всем привет!

Я активный пользователь open-source фрэймворка Grab (itforge уже писал о нем здесь и здесь) и 1/2 проекта GrabLab (который занимается собственно коммерческой эксплуатацией фрэймворка). Т.к. парсим сайты мы часто, помногу и задания как правило совершенно не похожи друг на друга, хотелось бы поделится своим опытом в вопросе построения типичного парсинг проекта.

Немного про инструментарий который помогает мне в работе

В качестве рабочего браузера я использую FireFox с плагинами HttpFox (анализировать входящий/исходящий http трафик), XPather (позволяет проверять xpath выражения), SQLite Manager (просмотр sqlite таблиц), код набираю в emacs, где активно использую сниппеты (YASnippets) для часто встречающихся конструкций.

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

Читать полностью »

Вышел PyCharm 2.5 с поддержкой удаленных интерпретаторов, улучшенным virtualenv, SVN 1.7 и прВ пятницу, не смотря, что она была еще и 13 апреля, команда создающая PyCharm, передовую IDE для Python от JetBrains, выпустила очередное обновление своего продукта — версию 2.5.
В этот релиз вошли важные нововведения по работе с Python-окружением и не только:
Читать полностью »

Предисловие

Я капризный. Я жалуюсь о многих вещах. Многое в мире технологий мне не нравиться и это предсказуемо: программирование — шумная молодая дисциплина, и никто из нас не имеет ни малейшего представления, что он делает. Учитывая закон Старджона, у нас достаточно вещей для постижения на всю жизнь.

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

PHP — единственное исключение. Фактически каждая деталь PHP в какой-то мере поломана. Язык, структура, экосистема: всё плохо. И даже нельзя указать на одну убийственную вещь, настолько дефект систематичный. Каждый раз когда я пытаюсь систематизировать недостатки PHP, я теряюсь в поиске в глубину обнаруживая всё больше и больше ужасных мелочей(отсюда фрактал).

PHP — препятствие, отрава моего ремесла. Я схожу с ума от того, насколько он сломан и насколько воспеваем каждым уполномоченным любителем нежелающим научиться чему-либо ещё. У него ничтожно мало оправдывающих положительных качеств и я бы хотел забыть, что он вообще существует.
Читать полностью »

Вам когда-нибудь хотелось добавить поле в класс dict? Вы мечтаете написать action.name.len() вместо len(action.name)? Вы хотите добавить гибкости любимому Python-у? Вам говорят, что это невозможно? Тогда давайте погрузимся в некоторые детали объектной модели Python!
Читать полностью »

Это второй вебинар из цикла бесплатных вебинаров по автоматизации тестирования.
Видеозапись (продолжительность 1 час 11 мин.):

Темы и детали видеозаписи под катомЧитать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js