19 февр. 2013 г.

Регулярка для поиска ссылок на странице

Для получения полного урла, вы можете использовать эту регулярку:
(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)
Заметьте, если вы работаете пайтоновским модулем re и методом findall, то на выходе у вас будет список, внутри которого - кортеж, который включит в себя:
1) Полный урл. К примеру http://test.ru/test_page.htm
2) Только домен. К примеру test.ru
3) Страницу со слешом. К примеру /test_page.htm
4) Только страницу. К примеру test.htm

17 февр. 2013 г.

Ubuntu, VDS: "perl: warning: Setting locale failed."

После покупки VDS и начала работы, я столкнулся с подобной ошибкой/предупреждением:

perl: warning: Setting locale failed. 
perl: warning: Please check that your locale settings: 
    LANGUAGE = (unset), 
    LC_ALL = (unset), 
    LANG = "en_US.UTF-8"
    are supported and installed on your system. 
perl: warning: Falling back to the standard locale ("C"). 
locale: Cannot set LC_CTYPE to default 
locale: No such file or directory 
locale: Cannot set LC_MESSAGES to default 
locale: No such file or directory 
locale: Cannot set LC_ALL to default locale: No such file or directory

Решение оказалось достаточно простым:

sudo locale-gen en_US.UTF-8

7 февр. 2013 г.

Python, Tkinter: Вывод капчи и ввод значения + скрипт парсинга WordStat

Для получения данных, с WordStat, мне нужно было сначала программным методом вбить значение капчи и только потом работать с полученными данными.

Конечно можно тупо скачать/открыть картинку и указать значение в терминале, через метод raw_input. Но хочется, чтобы все было по-человечески :)

Есть одна особенность, в интернете хватает примеров, по этой фиче. Но модуль ImageTk, который нужен для интерпретации картинки в окне теперь вынесен отдельно с библиотеки PIL, потому его теперь нужно установить и использовать отдельно:

sudo apt-get install python-imaging-tk

В принципе, я не буду описывать все возможности Tkinter, да и сам их знаю мало, так как посмотрел вводную инфу только за час, до написания статьи :) Выложу просто свой код скрипта на dumpz.org

А более подробно почитать про Tkinter, вы можете перейдя по этой ссылке.


P.S. Вся работа скрипта построена на базе замечательной библиотеки Grab(ссылка на офф. сайт), эта либа в своих зависимостях требует Lxml + PyCurl.

У вышеуказанном скрипте - вся работа с капчей построена на базе методов tkinter_captcha и set_captcha.

Tkinter_captcha - подгружает скачанную с Яндекса капчу, интерпретирует ее как объект, с помощью ImageTK и передает у виджет Label.
С помощью виджета Entry - мы создаем в фрейме поле для ввода значения. 
С помощью виджета Button - кнопку, которая после нажатия, через callback, вызывает наш внутренний метод set_captcha.
Последний в свою очередь принимает данные с виджета Entry и добавляет их в переменную + закрывает окно.

Сам скрипт сырой, так как писался 4фан. Но свою задачу делает.

Скрины работы: