По-моему, Путину пофиг на вопрос, через минуту он любой вопрос завернёт на модернизацию модернизации и как важно понимать и принимать важность поставленных вопросов и отдавать себе отчёт в том, что только вдумчивый и глубокий анализ совершённых и планируемых действий способен изменить сложившееся положение вещей.
Т.е. вместо ошибки я получаю какие-то загадочные ответы :) Ну True/False я, кажется, знаю почему так ведут себя т.к. они как-то из int типа сделаны и соотвествуют 1 и 0 числовым значения. Но это не отменяет того факта, что я бы просто Exception хотел видеть в этом месте.
Декораторы я не очень люблю, на мой взгляд они запутывают код (в виде @записи). Т.е. вместо явного вызова функции-декоратора, мы с помощью магического записи @ объявляем, что она должна будет вызвна в определённый момент.
Замыкания редко использую, можно сказать, они мне не нужны.
> list/dict comprehension
Ну это вообще синтаксический сахар (как и декораторы в @ запиcи)
Тоже использую awesome уже как несколько лет. До этого пыталась юзать xmonad, у awesome оказалось несколько весомым плюсов:
+ корректно отображает заголовки окон с русским текстом
+ содержит встроенный плагин для отображения систрея
+ lua-конфиг более понятен, чем мозгодробительный haskell
+ ну и стандартные плюсы titling window мэнеджеров: экономит место на экране за счёт отсуствующих заголовков и бордюров окон, а также нетребователен к системным ресурсам.
Саму тайловость практически не использую т.к. удобно каждому приложению отводить всю область рабочего стола
Что такое самоуверенный проект? Почему это словосочетание встречается в статье несколько раз? Где названия и адреса репозиториев этих самоуверенных проектов?
Не, чтобы с моей библиотекой разобраться, желательно знать lxml, иначе будут некоторые вещи непонятны. Я вообще придерживаюсь мнения, что фреймворки лучше начинать использовать после освоения вещей, лежащих в их основе.
> У вас, если не ошибаюсь, дополнительного функционала особо и нету, только оболочка над существующим?
Дополнительного функционала достаточно много, вплоть до работы с антикапча-сервисами.
Вы там пишите
>Обернем все что получилось в функцию, в итоге у нас получилось
Потом вам захочется прикрутить прокси, задавать рефереры и юзерагенты с помощью аргумента, смотреть куки. Вот так и получился Grab :o)
Я говорил именно про самый простой способ. Практика показала, что прокси лист из пары сотен серверов позволяет без проблем парсить некоторое количество запросов.
Анонимайзеры неудобны тем, что надо менять логику работы программы (формировать URL анонимайзера, отслеживать ошибки анонимайзеров, анонимайзеры часто глючат или сами находятся в бане у поисковой системы)
Обработка капчи это деньги. Пробовал разгадывать капчу от гугля, после некоторого количества запросов (с разгадыванием появлюящихся капчей) он начинает показывать капчу на каждый запрос :)
Партнёров не пробовал, тоже думаю не всё там гладко может быть, как минимум, точно также могут банить. Вы пробовали партнёров парсить? Какие объёмы парсили?
Парсинг поисковой системы через прокси удобен своей простой и понятной моделью. Работаем напрямую с поисковой системой без посредников. При увеличении объёмов запросов увеличиваем объём прокси серверов.
От того, что вы назвали это приведением типов, такое поведение не стало мне нравиться :)
> 'foo' + 1
«foo1»
Обычное приведение типов в javascript :) Хорошо хоть такое в python не работает.
Вот ещё про обычное приведение типов :) www.destroyallsoftware.com/talks/wat
А концепция yield мне нравится, да.
>>> 0.5 > True
False
>>> 2 > True
True
>>> 'foo' > 2
True
>>> 'foo' > 2000
True
Т.е. вместо ошибки я получаю какие-то загадочные ответы :) Ну True/False я, кажется, знаю почему так ведут себя т.к. они как-то из int типа сделаны и соотвествуют 1 и 0 числовым значения. Но это не отменяет того факта, что я бы просто Exception хотел видеть в этом месте.
Декораторы я не очень люблю, на мой взгляд они запутывают код (в виде @записи). Т.е. вместо явного вызова функции-декоратора, мы с помощью магического записи @ объявляем, что она должна будет вызвна в определённый момент.
Замыкания редко использую, можно сказать, они мне не нужны.
> list/dict comprehension
Ну это вообще синтаксический сахар (как и декораторы в @ запиcи)
+ корректно отображает заголовки окон с русским текстом
+ содержит встроенный плагин для отображения систрея
+ lua-конфиг более понятен, чем мозгодробительный haskell
+ ну и стандартные плюсы titling window мэнеджеров: экономит место на экране за счёт отсуствующих заголовков и бордюров окон, а также нетребователен к системным ресурсам.
Саму тайловость практически не использую т.к. удобно каждому приложению отводить всю область рабочего стола
Автозапуск сделан у меня через .xinitrc:
В конфиге awesome почти не менял ничего. Основное изменение — настройка автоматического раскладывания программ по нужным столам:
Актуальная версия тут: bitbucket.org/lorien/sr
> У вас, если не ошибаюсь, дополнительного функционала особо и нету, только оболочка над существующим?
Дополнительного функционала достаточно много, вплоть до работы с антикапча-сервисами.
Вы там пишите
>Обернем все что получилось в функцию, в итоге у нас получилось
Потом вам захочется прикрутить прокси, задавать рефереры и юзерагенты с помощью аргумента, смотреть куки. Вот так и получился Grab :o)
Анонимайзеры неудобны тем, что надо менять логику работы программы (формировать URL анонимайзера, отслеживать ошибки анонимайзеров, анонимайзеры часто глючат или сами находятся в бане у поисковой системы)
Обработка капчи это деньги. Пробовал разгадывать капчу от гугля, после некоторого количества запросов (с разгадыванием появлюящихся капчей) он начинает показывать капчу на каждый запрос :)
Партнёров не пробовал, тоже думаю не всё там гладко может быть, как минимум, точно также могут банить. Вы пробовали партнёров парсить? Какие объёмы парсили?
Парсинг поисковой системы через прокси удобен своей простой и понятной моделью. Работаем напрямую с поисковой системой без посредников. При увеличении объёмов запросов увеличиваем объём прокси серверов.
> и т.д.
Что ещё?