Próbuję uruchomić skrypty ze skryptu, jak omówiono here. Sugerował użycie fragmentu this, ale kiedy to zrobię, zawiesza się w nieskończoność. Zostało to zapisane w wersji .10; czy nadal jest kompatybilny z aktualną stajnią?Uruchamianie Scrapy ze skryptu - zawiesza się
Odpowiedz
from scrapy import signals, log
from scrapy.xlib.pydispatch import dispatcher
from scrapy.crawler import CrawlerProcess
from scrapy.conf import settings
from scrapy.http import Request
def handleSpiderIdle(spider):
'''Handle spider idle event.''' # http://doc.scrapy.org/topics/signals.html#spider-idle
print '\nSpider idle: %s. Restarting it... ' % spider.name
for url in spider.start_urls: # reschedule start urls
spider.crawler.engine.crawl(Request(url, dont_filter=True), spider)
mySettings = {'LOG_ENABLED': True, 'ITEM_PIPELINES': 'mybot.pipeline.validate.ValidateMyItem'} # global settings http://doc.scrapy.org/topics/settings.html
settings.overrides.update(mySettings)
crawlerProcess = CrawlerProcess(settings)
crawlerProcess.install()
crawlerProcess.configure()
class MySpider(BaseSpider):
start_urls = ['http://site_to_scrape']
def parse(self, response):
yield item
spider = MySpider() # create a spider ourselves
crawlerProcess.queue.append_spider(spider) # add it to spiders pool
dispatcher.connect(handleSpiderIdle, signals.spider_idle) # use this if you need to handle idle event (restart spider?)
log.start() # depends on LOG_ENABLED
print "Starting crawler."
crawlerProcess.start()
print "Crawler stopped."
UPDATE:
Jeśli trzeba mieć również ustawienia na pająka patrz poniższy przykład:
for spiderConfig in spiderConfigs:
spiderConfig = spiderConfig.copy() # a dictionary similar to the one with global settings above
spiderName = spiderConfig.pop('name') # name of the spider is in the configs - i can use the same spider in several instances - giving them different names
spiderModuleName = spiderConfig.pop('spiderClass') # module with the spider is in the settings
spiderModule = __import__(spiderModuleName, {}, {}, ['']) # import that module
SpiderClass = spiderModule.Spider # spider class is named 'Spider'
spider = SpiderClass(name = spiderName, **spiderConfig) # create the spider with given particular settings
crawlerProcess.queue.append_spider(spider) # add the spider to spider pool
Przykład ustawienia w pliku, pająków:
name = punderhere_com
allowed_domains = plunderhere.com
spiderClass = scraper.spiders.plunderhere_com
start_urls = http://www.plunderhere.com/categories.php?
Otrzymuję [this] (https://gist.github.com/1051117) traceback. Mój projekt scrapy nazywa się skrobakiem. Czy to może być problem? – ciferkey
Myślę, że to jest problem. To z prawdziwego projektu. Możesz usunąć odniesienia do skrobaka. Po prostu potrzebujesz ustawień dla pająków. – warvariuc
, więc po usunięciu odniesień do skrobaka, jak przejść do importowania ustawień dla mojego projektu? – ciferkey
- 1. Uruchamianie węzła ze skryptu bash
- 2. Uruchamianie scrapy z poziomu skryptu Python - eksporter CSV nie działa
- 3. Uruchamianie git pull ze skryptu php
- 4. Uruchamianie phantomJS ze skryptu w cronjob
- 5. Uruchamianie Scrapy z widoku Django
- 6. Uruchamianie skryptu w Dockerfile
- 7. Chromedriver Selenium się zawiesza?
- 8. MYSQL różni się w Wyjściu ze skryptu
- 9. uruchamianie skryptu Pyspark na EMR
- 10. Uruchamianie skryptu na serwerze AWS
- 11. Exec powershell.exe zawiesza się msbuild
- 12. a2ensite ze ścieżki skryptu
- 13. Program Visual Studio zawiesza się lub zawiesza się przy uruchomieniu.
- 14. React-natywny init zawiesza się/zawiesza się bez błędu.
- 15. Wykonywanie skryptu Bash ze skryptu PHP
- 16. JUnit test zawiesza się
- 17. JVM okresowo zawiesza się
- 18. Błyszczący serwer się zawiesza
- 19. Instalacja pip zawiesza się
- 20. Jenkins losowo zawiesza się
- 21. Jak uruchomić winpdb ze skryptu Python?
- 22. Uruchamianie ddd ze zdalnym gdbserver
- 23. Rozmowa ze skanerem ze skryptu PHP
- 24. MSDeploy "zawiesza się" na MSDeployPublish
- 25. Uruchamianie skryptu Pythona w skrypcie - Sprawdzić stan
- 26. java.util.Scanner zawiesza się na hasNext()
- 27. Uruchamianie skryptu MATLAB z python + pass args
- 28. Uruchamianie skryptu Pythona jako usługi systemu Windows
- 29. Uruchamianie skryptu jabłka na akcie folderu
- 30. Kolorowe wyjście ze skryptu tkaniny
To pytanie i odpowiedź mogą być gotowe do aktualizacji. Oto [niedawny fragment ze Scrapy] (http://scrapy.readthedocs.org/en/0.16/topics/practices.html). Działa, ale pytanie, dla mnie, staje się: jak zatrzymać reaktor Twisted i przejść, kiedy skończysz? – bahmait