RSS
 

Akismet API и питон, анализ спам комментариев.

25 Сен

Питон модуль акисмета питается мышами спама

Ну вот решил продолжить разговор по теме спама. Конечно мы все относимся к спаму по разному. Но правда состоит в том, что хороший спамер может поднимать нехилые деньги на рассылках или оптимизации своих сайтов в ПС. Естественно, что оптимизация хороших сайтов и сайтов сделанных для людей – не может быть обеспечена спам комментариями, но вот разного рода низко качественные блоги,  сайты с короткосрочной жизнью оптимизировать вполне можно. Поэтому то и ведётся борьба между создателями спама и их уловителями. Так как этот блог основан на всем известном движке Wordpress , то естественно здесь стоит плагин Akismet. Спам он фильтрует успешно. И поэтому я решил разобраться и описать ниже как можно связать питон и естественно спамо уловитель Akismet. Как говориться понимание ключ к успеху в использовании или преодолении.

Вернее сказать всё уже и так связано, но теперь можно продолжить исследование в этом направлении. Кроме того следующий пост может быть полезен спамерам для быстрой оценки их спам комментариев на валидность. Кстати валидные спам комментарии очень полезны и при развитии спам блогов. Как никак иммуляция человеческой активности… И если уж такая служба как Akismet вас не поймала, то у яндекса вполне может сложиться впечатление, что ваш блог кто-то посещает. Ну а если вы боритесь со спамом, то этот модуль может сыграть не маловажную роль в случае фильтрации нежелательных комментариев на других видах CMS,  отличных от либо даже на статических сайтах с собственно-ручно написанной гостевой книгой.

Ну естественно, перед тем как  удариться во все питоновские страсти, рещил поговорить о истории самого Akismet.

Ну для начала нам понадобиться

  1. несравненный питон, ну взять его можно здесь  http://www.python.org/
  2. модуль питон библиотеки akismet.py, этот модуль можно скачать с сайта http://www.voidspace.org.uk/python/akismet_python.html
  3. ну естественно валидный ключ, его вы можете получить по адресу http://akismet.com/personal/

Начну разговор со 2 -го пункта, про установку самого питона можно почитать у множества авторов…

Кстати замечу одну специфическую особенность.   Модуль akismet.py следует поместить в папку с файлами самого языка питон. Иначе простой импорт самого модуля непосредственно в другой директории не позволит пользоваться функциями этого модуля.

В том случае если вы не знаете, где находится ваш модуль питона – поможет сам питон.

в случае с ОС Linux

Для это надо буде ввести

import sys
print sys.path

Конечно будет выведена куча папок. Но нам нужна лишь первая из них. Например /usr/lib/python2.4.Чтобы разместить там модуль akismet.py необходимо будет переключиться на суперпользователя root, а затем ввести пароль.

В случае ОС Windows надо копировать файл akismet.py в папку C:\Python2.4\Lib\ .Как вы понимаете указывать надо свой путь. Я привёл лишь несколько примеров.

Ну а теперь , чтобы иметь возможность дальнейшего движения вперёд нам нужен валидный ключ. Иначе модуль работать не будет.

Здесь(http://akismet.com/personal/) указываем свою почту жмём кнопку Register

Затем выбираем бесплатную версию ключа. Тестируем всё таки.

Ну естественно указываем здесь ещё свой сайт и всё ключ будет выслан на почту…


Дальше нам должны выслать ключ на почту , указанную в форму. Теперь после получения этого ключа можно переходить к использованию самого модуля akismet.py . Для этого рекомендую посетить ещё раз сайт разработчика. Ну а если в английском вы не сильны, постараюсь ниже отразить важные моменты…

Конечно сразу начну с примера, приведённого на сайте разработчика . Который заставляет нас поверить , что для тестирования ключ не нужен

#example 3
url = 'http://www.voidspace.org.uk/cgi-bin/voidspace/guestbook.py'
api_key = '0acdfg1fr'
if not os.path.isfile('apikey.txt'):
api = Akismet(agent='Example/0.3')
api.key = api_key
api.blog_url = url

Но у меня пример не заработал. в такой форме . Поэтому рекомендую произвести последовательный ввод  комманд. Естественно всё надо делать в коммандной строке самого питона.

импортировали модуль

import akismet

дальше нужно сделать следующее:

 >>> api=akismet.Akismet()
>>> key="ваш ключ"
>>> blog_url="your url" 
>>> api.setAPIKey(key, blog_url)
>>> api.verify_key()

И в результате должны получить True. Иначе пишите в комментах .Это станет подьверждением того, что все выполненные действия верны. Ну по сути теперь остаётся самое интересное – это создать простой спам комментарий и проверить реакцию сайта akismet.com . За проверку комментариев отвечает комманда comment_check Вот небольшой скрипт, который должен проверять является ли выражение Make money fast! спамом или нет. Всё конечно можно будет усложнить конкретно под свою задачу, а этот пример надеюсь позволит понять основные принципы работы данного модуля. Сохраните файл под именем akismetspamtest.py

import akismet
defaultkey="6f4abba17d45"
pageurl="http://yoururlhere.com"
defaultagent="Mozilla/5.0 (Windows; U;Windows NT 5.1;en-US; rv:1.8.0.7"
defaultagent+="Gecko/20060909 Firefox/1.5.0.7"
os.environ['HTTP_USER_AGENT']=defaultagent
os.environ['REMOTE_ADDR']=127.0.0.1
comment="Make money fast!"
api=akismet.Akismet()
api.setAPIKey(defaultkey,pageurl)
if api.comment_check():
                print TRUE
else
               print FALSE

Затем  запустите интерпретатор питона и импортируйте модуль

>>> import akismetspamtest 
>>> True

И вышеуказанная строка должна зафиксироваться как спам.

А тепер просто небольшой Manual по встроенным функциям самого модуля akismet.

Эта функция используется для того, чтобы проверить – является ли комментарий помеченный как хэм спамом или нет

submit_spam(comment, data=None, build_data=True)

Эта функция используется для того, чтобы проверить – является ли комментарий помеченный как спам хэмом или нет

submit_ham(self, comment, data=None, build_data=True)

Следующая функция проверяет ключ Akismet API на валидность

verify_key()

Следующая функция устанавливает ключ key для данного url, полученного на сайте http://akismet.com

setAPIKey(key, url)

Следующим образом устанваливаем наш api, для того, чтобы можно было работать с вышеперечисленными функциями.

api = akismet.Akismet(agen="your agent")

your agent – является вашим агентом, по умолчанию этот агент -
Кстати иногда работает без указания принадлежности к конкретному модулю.

api=Akismet()

Ну в целом всё.

Google Bookmarks Reddit Technorati Yahoo My Web БобрДобр.ru Memori.ru МоёМесто.ru
 
1 комментарий

Опубликовано в рубрике Спамерам Посвящается

 

Прокомментировать

 
 
  1. lifephysic

    23.09.2010 - 17:05

    Связался с автором этого модуля по поводу не рабочего примера. Поэтому он порекомендовал добавить следующую строчку.
    from akismet import Akismet
    api=Akismet() =)
    Теперь примеры с его сайта будут работать

     
 
Система Orphus

Enter your email address:

Delivered by FeedBurner

.