Articles of retorcido

WSGI asíncrono con Twisted

Estoy creando una interfaz web para una aplicación torcida y me gustaría usar WSGI en lugar de twisted.web directamente (ya que el rest del sitio web es WSGI y ya tengo una base de código WSGI sustancial). La página de documentación retorcida que encontré sobre WSGIResource (http://twistedmatrix.com/documents/current/web/howto/web-in-60/wsgi.html) indica: Como cualquier otro contenedor WSGI, no puede […]

¿Poner en cola las llamadas remotas a un agente de perspectiva de Python Twisted?

La fuerza de Twisted (para python) es su marco asíncrono (creo). He escrito un servidor de procesamiento de imágenes que recibe solicitudes a través de Perspective Broker. Funciona bien siempre que lo alimente con menos de un par de cientos de imágenes a la vez. Sin embargo, a veces se le añaden cientos de imágenes […]

Progtwigción asíncrona en Python Twisted

Estoy teniendo problemas para desarrollar un proxy inverso en Twisted. Funciona, pero parece demasiado complejo y complicado. Mucho de eso se siente como vudú. ¿Hay ejemplos simples y sólidos de estructura de progtwigs asíncronos en la web o en los libros? ¿Una especie de guía de mejores prácticas? Cuando complete mi progtwig, me gustaría poder […]

Construyendo una API de matraz REST para Scrapy

La API debe permitir solicitudes de obtención HTTP arbitrarias que contengan las URL que el usuario desea raspar, y luego Flask debe devolver los resultados del raspado. El siguiente código funciona para la primera solicitud http, pero después de que el reactor torcido se detiene, no se reiniciará. Puede que ni siquiera esté haciendo esto […]

Scrapy en un horario

Hacer que Scrapy se ejecute en un horario me está conduciendo por el Twist (ed). Pensé que el siguiente código de prueba funcionaría, pero recibo un error twisted.internet.error.ReactorNotRestartable cuando la araña se dispara por segunda vez: from quotesbot.spiders.quotes import QuotesSpider import schedule import time from scrapy.crawler import CrawlerProcess def run_spider_script(): process.crawl(QuotesSpider) process.start() process = CrawlerProcess({ […]

La “inicialización getrandom () intermitente falló” al utilizar scrapy spider

Construí una araña scrapy (scrapy 1.4). Esta araña se activa a pedido desde un sitio web de django a través de django-rq y supervisord. Aquí está el trabajo supervisor que está escuchando los eventos de django-rq (reddit se usa como agente) [program:rq_worker] command=python3 manage.py rqworker default directory=/var/www/django-app autostart=true autorestart=true stderr_logfile=/var/log/rq_worker.err.log stdout_logfile=/var/log/rq_worker.out.log Esta configuración está funcionando […]

Torcido: hacer que el código no bloquee

Estoy un poco desconcertado acerca de cómo escribir código asíncrono en python / twisted. Supongamos (por razones de razonamiento) que estoy exponiendo una función al mundo que tomará un número y devolverá Verdadero / Falso si es primo / no primo, por lo que se ve vagamente así: def IsPrime(numberin): for n in range(2,numberin): if […]

Retorcido: envío de datos a clientes seleccionados

Hay un servidor que hice con Twisted que recibe cadenas de un cliente y las envía a todos los demás clientes conectados. ¿Pero hay una manera de enviar la cadena a solo clientes a los que el remitente quería enviarla? Si es así, ¿cómo lo hago en código? Esto es lo que hice hasta ahora […]

¿Por qué Scrapy arroja un error para mí cuando bash arañar y analizar un sitio?

El siguiente codigo class SiteSpider(BaseSpider): name = “some_site.com” allowed_domains = [“some_site.com”] start_urls = [ “some_site.com/something/another/PRODUCT-CATEGORY1_10652_-1__85667″, ] rules = ( Rule(SgmlLinkExtractor(allow=(‘some_site.com/something/another/PRODUCT-CATEGORY_(.*)’, ))), # Extract links matching ‘item.php’ and parse them with the spider’s method parse_item Rule(SgmlLinkExtractor(allow=(‘some_site.com/something/another/PRODUCT-DETAIL(.*)’, )), callback=”parse_item”), ) def parse_item(self, response): …. parse stuff Lanza el siguiente error. Traceback (most recent call last): File “/usr/lib/python2.6/dist-packages/twisted/internet/base.py”, […]