Articles of retorcido

Twisted Python Failure – Problemas de Scrapy

Estoy tratando de usar SCRAPY para eliminar los requisitos de búsqueda de este sitio web para cualquier consulta de búsqueda: http://www.bewakoof.com . El sitio web utiliza AJAX (en forma de XHR) para mostrar los resultados de la búsqueda. Me las arreglé para rastrear el XHR, y lo observas en mi código como se muestra a […]

Cómo hacer un cliente Python retorcido con funcionalidad de línea de lectura

Estoy tratando de escribir un cliente para un servidor TCP simple usando Python Twisted. Por supuesto que soy bastante nuevo en Python y comencé a mirar Twisted para que pudiera estar haciendo todo mal. El servidor es simple y está destinado a usar nc o telnet. No hay autenticación. Solo te conectas y obtienes una […]

¿Qué significa estos formatos en la cadena de documentación de twisted?

En el código fuente de twisted, muchas cadenas de documentación contienen formatos como este: L {xxx} o C {xxx} o una línea que comienza con una ‘@’, ¿cuál es su significado? por ejemplo, en twisted / internet / interfaces.py: def registerProducer(producer, streaming): “”” Register to receive data from a producer. … For L{IPullProducer} providers, C{resumeProducing} […]

Twisted (servidor asíncrono) vs Django (o cualquier otro framework)

Necesito ayuda para comprender cuál es la ventaja de usar un marco asíncrono. Supongamos que quiero desarrollar una aplicación web de chat simple. ¿Por qué no puedo escribir código python en el marco de Django que hace un sondeo largo en el que no envío una respuesta al servidor hasta que alguien ingrese un nuevo […]

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 […]