Friday, September 4th, 2009 |
Да-да, теперь не лезет, в свое время многие постарались на славу, чтобы ушатать этот блогхост кодеками и прочими интересными вещами. Но тем не менее даже на данный момент блогспот можно использовать для привлечения траффика, хотя для этого теперь нужно приложить хоть какие-то усилия. Помимо этого хост можно использовать в качестве индексируемой базы данных (я например какое-то время сохранял результаты google hot trends), собрания каких-либо тематических ссылок. На самом деле вариантов масса, в результате будут получаться различные блоги, и если обновленеи будет поставленно на поток, то эти сайты в конечном итоге послужат фундаментом SEO-империи.
Помимо этого гугл любезно предоставляет API для работы с большей частью своих сервисов, все это дело регулярно апдейтится и документируется, скачать библиотеку для Python можно на официальной странице Google GData Python Client. В данном случае нас интересует работа с blogspot.com. Внутри архива Google GData есть подробная (и короткая) инструкция по установке пакетов (package) для Python.
По поводу использования, на активстэйт как обычно все уже сделали до нас, однако в этом примере мой питон выдает ошибку :
TypeError: CreatePost() takes exactly 6 arguments (5 given)
Это легко исправить, функция CreatePost() помимов всего прочего принимает список тэгов которые нужно добавить к посту. В примере не хватает как раз этого параметра, хз в чем прикол, возможно защита от дурака =) Я пофиксил баг (пример работы с blogspot через API), чтобы все запускалось без проблем, нужно только разобраться в коде и использовать уже готовые функции, единственная не поддающаяся автоматизации через API задача – регистрация аккаунтов, но гмыла можно купить, а регистрировать и оформлять блог или руками, или используя софт эмулирующий работу браузера вроде Human Emulator, хардкорные кодеры, конечно могут реализовать это через curl.
Работать через API конечно удобно, если собирать более-менее красивые блоги в небольшом количестве. В остальных случаях, крайне желательно использовать прокси и как вы понимаете этого (во всяком случае прямо) в API не предусмотрено, нужно или хитрить запуская код через различные проксификаторы или править код самой библиотеки.
Posted in GData, Google, Python | No Comments »
Tuesday, August 11th, 2009 |
Хотел написать для начала, что нибудь вроде “Выдача гугла – бесценный источник информации”, ну да ладно, все мы знаем зачем вебмастеру понадобилось вдруг анализировать топы гугла по спискам кейвордов или хуже того парсить урлы/отслеживать позиции сайтов =) вообщем предельно ясно, что задача анализа результатов выдачи возникает часто и найти применение результатам не проблема. Сложность только в том, что нужно писать код, причем желательно быстро и с минимальными усилиями. Помимо самих SERP было бы неплохо узнать и ключевые параметры – PR (PageRank) и Index, полезная информация, я гарантирую. Некоторое время назад, я кодил на PHP, потом бросил, бесит отсутствие строгой типизации (и потоков, да и тем кто с детства привык к красоте и логичности кода на Object Pascal/C++ пхп должен быть глубоко противен), еще и что-нибудь вроде WAMP/XAMPP поднимать на локальном компе. Python ничуть не хуже все к чему привыкли на PHP есть и на Python.
Для желающих приобщиться доступен Complete and Ready-to-Install industry standard Python distribution – после установки можно сразу приступать к работе, именно в таком виде должен поставляться язык программирования.
Итак для начала нужно получить данные от гугла, можно попробовать делать это через curl/liburl, но это hard-style, если погуглить можно легко найти уже готовые решения. Я уже озаботился в свое время поиском библиотеки, поэтому сразу даю линк на пост автора – Python Library for Google Search, с примерами и описанием. Библиотека избавляет вас от деталей предоставляя интерфейс позволяющий легко и изящьно работать с выдачей. Просто закиньте содержимое архива в Python\Lib или в папку где находиться ваша программа.
Код шлет запрос к гуглу и выводит в окно Python Shell результаты, обратите внимание на конструкцию try/except – позволит избежать остановки программы в случае ошибки :
from xgoogle.search import GoogleSearch, SearchError
try:
gs = GoogleSearch("hot black chicks", random_agent=True)
gs.results_per_page = 10
results = gs.get_results()
for res in results:
print res.title.encode('utf8')
print res.desc.encode('utf8')
print res.url.encode('utf8')
print
except SearchError, e:
print "Search failed: %s" % e
Количество страниц в индексе гугла для домена определим сформировав запрос вида “site:site_url” и поглядев на кол-во результатов :
def GetGoogleIndex(self, url):
request = 'site:' + url
index = 0
try:
gs = GoogleSearch(request)
gs.results_per_page = 10
results = gs.get_results()
index = gs.num_results
except SearchError, e:
index = -1
print "Search Failed : %s" % e
finally:
print "Index: %d\tURL: %s" % (int(index), url)
return index
С определением PR все непросто, но это не важно, т.к. в интернете несложно найти уже готовый код :
Google PR checker Python code
Результаты можно писать в файлы/базу данных SQL/SQLite, но лучше естественно в базу, проще будет делать выборки. Готовый и отлаженный код без проблем переносится на сервер, при желании реализуется многопоточность, но в этом случае скорее всего придеться дрочить гугл через прокси (код библиотеки открыт, как включить прокси смотреть тут и тут)
Posted in Google, Python | 1 Comment »