- Markovgen - генерация текста, цепями Маркова, не помню где взял, думаю автор не обидится если не укажу ссылку.
- ClientForm- классная вещь, позволяет автоматически формировать POST-запрос для html-форм на странице. На том же сайте есть и mechanize, вроде как еще одна приблуда типа urllib-ов и httplib-ов, с отличием, что эмулирует браузер. Не разбирался с ним, помню только, что когда запустил пример с сайта в сниффере увидел, что скрипт полез искать robots.txt.
- Beautiful Soup -модуль для работы с html-кодом страницы. Пользовался им, когда не знал про ClientForm, для того, чтобы выдернуть все данные формы.
- PIL -модуль для работы с изображениями, пользовался пару раз, для того, чтобы склеить капчу и для того, чтобы уникализировать заливаемые изображения.
- libgmail - как-то наткнулся на него, пару раз попробовал приконнектиться к почте, но безуспешно. Модуль, конечно, МастХэв, но, то ли я что-то упустил, то ли он устарел.
- wodrpesslib - когда-то писал скрипт, для автопостинга в Wordpress, наткнулся на этот модуль, к сожалению он работает только через xmlrpc, что не всегда приемлимо.
вторник, 12 января 2010 г.
Полезные модули.
Нашел под python много интересных модулей.
Подписаться на:
Комментарии к сообщению (Atom)
Имхо, только PIL их этого стоящая штука. Остальное лишнее при работе через POST/GET.
ОтветитьУдалитьНу вот ClientForm далеко не лишнее, если необходимо написать скрипт, который будет заполнять формы не на определенном сайте, а на определенном движке(например автонаполнение блогов на движке wordpress), то без ClientForm будет тяжело. Он и все поля выдернет, и запрос сформирует, нужно только указать значения основных полей. Я не знаю, может есть что-то лучше, я не находил.
ОтветитьУдалитьClientForm в связке с mechanize'ом - отличная штука!
ОтветитьУдалитьиз механайза тебе нужен, в основном, лишь Browser():
# -*- coding: cp1251 -*-
from mechanize import Browser # импортим браузер
br = Browser() # присваиваем класс Браузер из модуля механайз
#br = Browser().set_handle_robots(False) # Те же яйца, но без таскания robots.txt !!!
result = br.open('http://python4seo.ru/?p=104') # на всякий случай, помещаем ответ в переменную
for form in br.forms(): # можно глянуть, какие у нас есть формы, но это пригодится только для отладки
print form
br.select_form(predicate=lambda form:'captcha' in str(form)) # обязательно нужно выбрать
# форму перед наманством над ней
# это можно сделать, как по её имени,
# если оно есть, так и по её номеру,
# или как-то ещё.. Или, как в моём
# примере - по содержащейся в этой
# форме строки. В данном случае,
# у нас ТОЛЬКО в форме комментария есть
# слово captcha.
br["author"] = u'Крайст' # заполняем поля формы
br["email"] = u'Jezuz_Chrizt@mail.ru' # палюсь =)
br["url"] = u'http://jezuz-chrizt.livejournal.com' # настоящий спамер должен знать, что рекламит =)
br["comment"] = u'Привет, я спам, робот, говнокамент, виагра, сиалис и гейское азиатское порно )))'
# классический говнокамент ( "гавноспамент"(c)noxon.su )
# капчу профукали, и всё такое, но сабмитим
br.submit() # опять же, сабмит можно присвоить и какой-нить переменной, чтобы получить ответ в неё:
# subm_respon = br.submit()
Ах, да..
ОтветитьУдалитьТолько закончил делать скрипт для авторазмещения ссылок биржи Setlinks (если чо, могу дать рефку - не лишним будет реф =)) на блогах ЖЖ.
Заёпся, честно говоря ) Получилось 12 Кб не до конца отлаженного, но вполне рабочего кода по интерфейсам.
У сетлинкс - какой-то своё галимый xml-фейс, а у жж - xml-rpc. С моими пузатыми жжшками вполне неплохо проходит тема )
На моём Asus Eee PC 1000H с вроде бы мегабитным инетом, 35 жжшек пробегается за 3 с лишним минуты.
Вот, кстати, для этого кода я и хотел надрочиться делать многопоточность, да что-то никак в мой мозг это не лезет :(
Может кто в курсе, как с помощью ClientForm или mechanize заполнить обыкновенный в форме (как например в случае с рекапчей)? Они видят только input теги, а textarea напрочь игнорируют.
ОтветитьУдалитьА вы не находили модуля на python для парсинга поисковых фраз из логов Apache или nginx?
ОтветитьУдалитьНе, не интересовался таким.
ОтветитьУдалитьесть еще spynner
ОтветитьУдалитьон в отличи от механайз умеет работать с js, так как spynner надстройка над вебкитом
Ух, интересно, надо будет глянуть, спасибо.
ОтветитьУдалить