2013-10-18 8 views
5

Ich benutze Scrapy, um ein Projekt zu erstellen und meine eigene Spinne, sagen "spider_us.py", in den "spiders" -Ordner, und ich möchte eine EXE-Datei erstellen, die auf anderen Computern ausgeführt werden kann, ohne scrapy zu installieren.Wie baue ich meinen Scrapy Spider mit py2exe in eine EXE-Datei?

Wenn ich die Anweisungen von py2exe folgen, mache ich eine neue Datei „Setup.py“ im gleichen Ordner mit folgendem Inhalt:

from distutils.core import setup 
import py2exe 

setup(console = ["spider_us.py"]) 

aber es hat nicht funktioniert, weil, wenn ich betreiben meine Spinne, ich benutze den Befehl "scrapy crawl spider_us" anstatt direkt die Datei "spider_us.py" im "spiders" -Ordner auszuführen.

Wie ist es möglich das gesamte Spider Programm (automatisch erstellt von scrapy wenn ich "scrapy startproject XXX" benutze) zu einer exe Datei zu erstellen, nicht nur die Spider Datei (in meinem Fall "spider_us.py") "Spinnen" Unterordner.

Jeder gibt Ratschläge oder Hilfe, jeder Kommentar ist willkommen. Vielen Dank.

Antwort

1

Versuchen Sie, die Spider über ein Python-Skript auszuführen (anstelle des Befehls scrapy crawl <spider_name>). Sie benötigen einen Code zu schreiben, z.B .:

from twisted.internet import reactor 
from scrapy.crawler import Crawler 
from scrapy import log, signals 
from testspiders.spiders.followall import FollowAllSpider 
from scrapy.utils.project import get_project_settings 

spider = FollowAllSpider(domain='scrapinghub.com') 
settings = get_project_settings() 
crawler = Crawler(settings) 
crawler.signals.connect(reactor.stop, signal=signals.spider_closed) 
crawler.configure() 
crawler.crawl(spider) 
crawler.start() 
log.start() 
reactor.run() # the script will block here until the spider_closed signal was sent 

Weitere Informationen finden Sie the documentations on "Run Scrapy from a script"