from grab import Grab from django.utils.http import urlquote_plus def google_position(query, url, start=False): if start > 240: # 10 * 24 return None google_url = 'http://www.google.com/search?q=%s' % urlquote_plus(query) if start: google_url += '&start=%d' % start g = Grab() g.go(google_url) for i, r in enumerate(g.pyquery('li.g cite')): if url in r.text_content(): if start: return start + i + 1 return i + 1 if start: return google_position(query, url, start=start + 10) return google_position(query, url, start=10) def yandex_position(query, url, page=False): if page > 24: return None yandex_url = 'http://yandex.ru/yandsearch?text=%s' % urlquote_plus(query) if page: yandex_url += '?p=%d' % page g = Grab() g.go(yandex_url) for i, r in enumerate(g.pyquery('.b-body-items .b-serp-item__title-link')): if url in r.get('href'): if page: return page * 20 - 10 + i + 1 return i + 1 if page: return yandex_position(query, url, page=page + 1) return yandex_position(query, url, page=1)
19 апр. 2012 г.
Парсинг позиций в выдаче google и яндекс на python / grab
Ниже грубый, но работающий код парсинга результатов поисковой выдачи с использование python, grab. Здорово, что pyquery запросы к DOM можно выполнять прямо из grab объекта.
8 апр. 2012 г.
Второй Moscow Django Meetup
Засветился на фотках в отчете Future Colors http://blog.futurecolors.ru/2012/04/moscow-django-meetup-2.html.
Первая - самая ржачная (фото твиттер ленты с экрана). На встрече было дико душно, т.к. в аудитории было дофига народу. Мы сидели почти в конце аудитории в дальней от окон части. 70 мужиков выдышали весь воздух к концу первого доклада, а твиттер никто из организаторов не читал :). Мне пришлось помимо вежлевого твита ещё голосом попросить открыть окно.
2 апр. 2012 г.
28 мар. 2012 г.
Moscow calling
Работу нашел. Подписанный трудовой договор на руках. Мой номер в Москве
+7 926 663 40 80.
+7 926 663 40 80.
16 мар. 2012 г.
Благодарность
Активно ищу работу через социальные сети. Обнаружил, что в МоемКруге есть несколько рекомендации этого блога. Спасибо этим прекрасным людям: http://moikrug.ru/circles/530265091/.
2 мар. 2012 г.
Python virtualenv on mac os
Да, я купил mac и теперь буду писать в блоге о том, что все уже давным-давно прошли. Грабля номер раз, на которую я наступил:
$ virtualenv myenvfor27
New python executable in myenvfor27/bin/python
Error [Errno 2] No such file or directory while executing command install_name_tool -change /System/Library/Fram.../Versions/2.7/Python @executable_path/../.Python myenvfor27/bin/python
Could not call install_name_tool -- you must have Apple's development tools installed
Traceback (most recent call last):
File "/usr/local/bin/virtualenv", line 8, in <module>
load_entry_point('virtualenv==1.7.1.2', 'console_scripts', 'virtualenv')()
File "/Library/Python/2.7/site-packages/virtualenv-1.7.1.2-py2.7.egg/virtualenv.py", line 928, in main
never_download=options.never_download)
File "/Library/Python/2.7/site-packages/virtualenv-1.7.1.2-py2.7.egg/virtualenv.py", line 1029, in create_environment
site_packages=site_packages, clear=clear))
File "/Library/Python/2.7/site-packages/virtualenv-1.7.1.2-py2.7.egg/virtualenv.py", line 1347, in install_python
py_executable])
File "/Library/Python/2.7/site-packages/virtualenv-1.7.1.2-py2.7.egg/virtualenv.py", line 966, in call_subprocess
cwd=cwd, env=env)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 672, in __init__
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1202, in _execute_child
OSError: [Errno 2] No such file or directory
install_name_tool входит в Command Line Tools из Xcode. Чтоб заработало нужно:
1. Поставить Xcode через App Store
2. Зайти в системное меню Xcode->Prefences->Downloads
3. Нажать кнопку инсталл напротив Command Line Tools, убить 10 минут на регистрацию в developer.apple.com (мне пришлось заполнять пункт "компания" всякой ерундой, т.к. в данную секунду я не отношусь ни к компаниям, ни к университетам).
$ virtualenv myenvfor27
New python executable in myenvfor27/bin/python
Error [Errno 2] No such file or directory while executing command install_name_tool -change /System/Library/Fram.../Versions/2.7/Python @executable_path/../.Python myenvfor27/bin/python
Could not call install_name_tool -- you must have Apple's development tools installed
Traceback (most recent call last):
File "/usr/local/bin/virtualenv", line 8, in <module>
load_entry_point('virtualenv==1.7.1.2', 'console_scripts', 'virtualenv')()
File "/Library/Python/2.7/site-packages/virtualenv-1.7.1.2-py2.7.egg/virtualenv.py", line 928, in main
never_download=options.never_download)
File "/Library/Python/2.7/site-packages/virtualenv-1.7.1.2-py2.7.egg/virtualenv.py", line 1029, in create_environment
site_packages=site_packages, clear=clear))
File "/Library/Python/2.7/site-packages/virtualenv-1.7.1.2-py2.7.egg/virtualenv.py", line 1347, in install_python
py_executable])
File "/Library/Python/2.7/site-packages/virtualenv-1.7.1.2-py2.7.egg/virtualenv.py", line 966, in call_subprocess
cwd=cwd, env=env)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 672, in __init__
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1202, in _execute_child
OSError: [Errno 2] No such file or directory
install_name_tool входит в Command Line Tools из Xcode. Чтоб заработало нужно:
1. Поставить Xcode через App Store
2. Зайти в системное меню Xcode->Prefences->Downloads
3. Нажать кнопку инсталл напротив Command Line Tools, убить 10 минут на регистрацию в developer.apple.com (мне пришлось заполнять пункт "компания" всякой ерундой, т.к. в данную секунду я не отношусь ни к компаниям, ни к университетам).
28 февр. 2012 г.
Парсинг сайтов на python
Привет, друзья!
Нужен ваш профессиональный совет: чем современный питонист должен парсить сайты?
Поводом для обращения к аудитории для меня послужило открытие либы pyquery, которая позволяет делать jqurey-style запросы по xml-документам. Я вдруг осознал, что есть много нетрадиционных, но весьма удобных подходов к проблемме.
А какие интересные и удобные способы парсинга известны вам?
Нужен ваш профессиональный совет: чем современный питонист должен парсить сайты?
Поводом для обращения к аудитории для меня послужило открытие либы pyquery, которая позволяет делать jqurey-style запросы по xml-документам. Я вдруг осознал, что есть много нетрадиционных, но весьма удобных подходов к проблемме.
А какие интересные и удобные способы парсинга известны вам?
Подписаться на:
Сообщения (Atom)