pages - Instalando ScrapyJS-nuevo en python
scrapy to mongodb (2)
Estoy tratando de usar este complemento de scrapy (o lo que es): scrapyjs .
Sin embargo, no hay instrucciones de instalación y soy nuevo en Python. ¿Hay algo básico aquí que me falta? ¿Cómo podría integrar esto con un proyecto de tratamiento?
Nota: preferiría usar el controlador de descargas Scrapy, no la versión de middleware, ya que parece que será más rápido de ejecutar. (Corrígeme si estoy equivocado).
Para agregar a la respuesta de alecxe, para los sistemas Ubuntu / Debian, primero instale las dependencias (webkit, gtk2 y jswebkit)
sudo apt-get install python-jswebkit libwebkitgtk-1.0-0 python-webkit
sudo apt-get install python-gtk2 python-gnome2 python-glade2 python-gobject
Si está trabajando con un virtualenv, tendrá que enlazar simbólicamente las bibliotecas que instaló
mkdir your-venv/lib/python2.7/dist-packages
ln -s /usr/lib/python2.7/dist-packages/gtk-2.0* lib/python2.7/dist-packages/
ln -s /usr/lib/python2.7/dist-packages/pygtk.pth lib/python2.7/dist-packages/
ln -s /usr/lib/python2.7/dist-packages/gobject/ lib/python2.7/dist-packages/
ln -s /usr/lib/python2.7/dist-packages/glib/ lib/python2.7/dist-packages/
ln -s /usr/lib/python2.7/dist-packages/cairo lib/python2.7/dist-packages/
ln -s /usr/lib/python2.7/dist-packages/webkit lib/python2.7/dist-packages/
ln -s /usr/lib/python2.7/dist-packages/jswebkit.so lib/python2.7/dist-packages/
Para usar el método del parche, averigua dónde vive tu enfermedad (si no lo has hecho)
python -c "import scrapy; print scrapy.__file__"
Esto le dará la ubicación del bytecode compilado de __init__.py de __init__.py
. Vaya a ese directorio y agregue las siguientes líneas en __init__.py
from twisted.internet import gtk2reactor
gtk2reactor.install()
Como scrapyjs
no es un paquete python regular y no está registrado en PyPI
, primero debe clonar el repositorio y mover el paquete scrapyjs
en PYTHONPATH
o en el directorio de proyecto de scrapy (hacer que sea "importable").
Hay dos opciones para integrarlo con Scrapy
:
-
scrapy
para usar el reactorgtk2
agregar un nuevo middleware en la configuración :
DOWNLOADER_MIDDLEWARES = { ''scrapyjs.middleware.WebkitDownloader'': 1, }
Este último es mucho más fácil y más limpio, pero afectaría seriamente el rendimiento ya que cada solicitud se manejaría en un modo de bloqueo.