Я ищу хорошего самаритянина, который может предоставить очень простой каркас для запуска скрипта Python с помощью Google App Engine.Я прочитал документацию, проверил соответствующие вопросы SO, но я потерял с форматом WebApp.Все, что я хочу сделать, - это запустить один скрипт Python, который принимает аргументы или несколько скриптов Python, 6 раз в неделю, чтобы прослушать изменения на веб-сайте, а затем опубликовать их в Firestore.
Я понимаю формат cron и большинствоиз файлов конфигурации.Я застрял в том, как упорядочить мои файлы для проекта и как работает URL.
Все, что я спрашиваю, - это очень простой пример того, как эффективно запускать скрипты Python. Это , безусловно, лучший ресурс, который я нашел, но я не могу понять, что происходит с этим кодом с этого сайта:
`#!/usr/bin/python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext import db
import feedparser
import time
class Item(db.Model):
title = db.StringProperty(required=False)
link = db.StringProperty(required=False)
date = db.StringProperty(required=False) class Scrawler(webapp.RequestHandler):
def get(self):
self.read_feed()
self.response.out.write(self.print_items())
def read_feed(self):
feeds = feedparser.parse( "http://www.techrepublic.com/search?t=14&o=1&mode=rss" )
for feed in feeds[ "items" ]:
query = Item.gql("WHERE link = :1", feed[ "link" ])
if(query.count() == 0):
item = Item()
item.title = feed[ "title" ]
item.link = feed[ "link" ]
item.date = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(time.time()))
item.put()
def print_items(self):
s = "All items:<br>"
for item in Item.all():
s += item.date + " - <a href='" + item.link + "'>" + item.title + "</a><br>"
return s application = webapp.WSGIApplication([('/', Scrawler)], debug=True) def main():
run_wsgi_app(application) if __name__ == "__main__":
main() `
Это скрипт на pythonЯ пытался запустить только для тестирования, используя python3.7:
import sys
from datetime import datetime
import firebase_admin
from firebase_admin import firestore
app = firebase_admin.initialize_app()
db = firestore.client()
def hello_firestore(user_name):
db.collection('firestore_test').document('test').set({
'time': str(datetime.now()),
'user_name': user_name
})
if __name__ == "__main__":
try:
user_name = sys.argv[1]
except:
print('Error with the argument', file=sys.stderr)
try:
hello_firestore(user_name)
except:
print('Error accessing the database', file=sys.stderr)
sys.exit(0)
Для того, что я понимаю, я должен использовать Flask или что-то подобное, чтобы заставить его работать, но я не совсем понимаю, как это работает,все, что я прошу, это небольшой образец и краткое объяснение, а оттуда я добавлю два и два.
С наилучшими пожеланиями