Думаю настало время с чего-то начать. Начнём пожалуй с самого просто - тупо спарсим тренды, которые удобно располагаются прямо в атоме. Гугл по этому поводу надеюсь не растроится, что его немного отпарсили, всё таки на то он и атом. Насчёт удобно это я скорей загнул, т.к. с атомом не работал ни разу. И в данный момент пытаюсь с помощью поиска разрешить философский вопрос: как в GAE принято, писать заново, или попробовать найти библиотеку.
Вообщем 10 минут поиска меня убедили что здесь принято делать большую часть работы самому а не ждать помощи от библиотек. Собственно как оказалось это 2 строчки кода, но об этом ниже.
Итак, как выглядит приложение в Google App Engine? Это как минимум 3 файла: 'app.yaml', 'index.yaml' и приложение 'main.py'. Гугл на своё усмотрение предлагает использовать либо свою разработку в плане фреймворка, либо любой который работает с WSGI - что я и сделал. Сразу же взял Bottle. Таким образом приложение представляет из себя следующий список:
Ниже приведу листинг файлов.
Файл 'main.py':
.*? ", re.I|re.S)
rt = re.compile("<.*?>", re.I)
res = urlfetch.fetch(trend_url)
if res.status_code == 200:
content = res.content
trends = rl.findall(content)
trends = [rt.sub("", t).strip() for t in trends]
return {"trends" : trends }
def main():
run(server='gae')
if __name__ == '__main__':
main()
Файл 'app.yaml':
Вообщем 10 минут поиска меня убедили что здесь принято делать большую часть работы самому а не ждать помощи от библиотек. Собственно как оказалось это 2 строчки кода, но об этом ниже.
Итак, как выглядит приложение в Google App Engine? Это как минимум 3 файла: 'app.yaml', 'index.yaml' и приложение 'main.py'. Гугл на своё усмотрение предлагает использовать либо свою разработку в плане фреймворка, либо любой который работает с WSGI - что я и сделал. Сразу же взял Bottle. Таким образом приложение представляет из себя следующий список:
[trendec@localhost trendstat]$ ls -al total 248 drwxrwxr-x 4 trendec trendec 4096 May 18 20:11 . drwxr-xr-x 9 trendec trendec 4096 May 17 23:21 .. -rw-r----- 1 trendec trendec 142 May 18 19:47 app.yaml -rwxr-xr-x 1 trendec trendec 98154 May 14 00:26 bottle.py -rw-r--r-- 1 trendec trendec 114796 May 18 19:47 bottle.pyc -rw-r----- 1 trendec trendec 471 May 18 20:03 index.yaml -rwxr-x--- 1 trendec trendec 818 May 18 20:03 main.py drwxrwxr-x 2 trendec trendec 4096 May 18 19:16 static drwxrwxr-x 2 trendec trendec 4096 May 18 19:16 viewsВ директории 'static' содержится файл стилей 'simple.css' и 'robots.txt' а в директории 'view' шаблон главной страницы.
Ниже приведу листинг файлов.
Файл 'main.py':
#!/usr/bin/env python
# encoding: utf-8
from bottle import route, run, view, request, redirect, response, post, abort, debug, error
from google.appengine.api import urlfetch
import re
debug(True)
@route('/')
@route('')
@view('home')
def home_view():
trends = []
trend_url = "http://www.google.com/trends/hottrends/atom/hourly"
rl = re.compile("Файл 'app.yaml':
application: trendstat version: 1 runtime: python api_version: 1 handlers: - url: /static static_dir: static - url: /(.*\.(gif|png|jpg)) static_files: static/\1 upload: static/(.*\.(gif|png|jpg)) - url: /robots.txt static_files: static/robots.txt upload: static/robots.txt - url: /.* script: main.py
Комментариев нет:
Отправить комментарий