Class Myspider1
#do something....
Class Myspider2
#do something...
Yukarıdaki, spider.py dosyamın mimarisidir. ve önce Myspider1'i çalıştırmaya çalışıyorum ve Myspider2 katlarını birkaç kez çalıştırmaya çalışıyorum. Bunu nasıl yapabilirim ??? herhangi bir ipucu?Birden Çok Örümcek'i sırayla Çalıştırın
configure_logging()
runner = CrawlerRunner()
def crawl():
yield runner.crawl(Myspider1,arg.....)
yield runner.crawl(Myspider2,arg.....)
crawl()
reactor.run()
Bu yolu kullanmayı deniyorum.Ama nasıl çalıştırılacağını bilmiyorum. Cmd'yi cmd'de çalıştırmalı mıyım (hangi komutları?) Veya sadece python dosyasını çalıştırmalı mıyım?
çok teşekkürler !!! test.py> çýktý.txt
Sen output.txt gelen gözlemleyebilirsiniz Şimdi piton çalıştırmak test.py
import scrapy
from twisted.internet import reactor, defer
from scrapy.crawler import CrawlerRunner
from scrapy.utils.log import configure_logging
class MySpider1(scrapy.Spider):
# Your first spider definition
name = "dmoz"
allowed_domains = ["dmoz.org"]
start_urls = [
"http://www.dmoz.org/Computers/Programming/Languages/Python/Books/"
]
def parse(self, response):
print "first spider"
class MySpider2(scrapy.Spider):
# Your second spider definition
name = "dmoz"
allowed_domains = ["dmoz.org"]
start_urls = [
"http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"
]
def parse(self, response):
print "second spider"
configure_logging()
runner = CrawlerRunner()
@defer.inlineCallbacks
def crawl():
yield runner.crawl(MySpider1)
yield runner.crawl(MySpider2)
reactor.stop()
crawl()
reactor.run() # the script will block here until the last crawl call is finished
:
Sadece python komut dosyasını çalıştırın. CrawlerProcess + CrawlerRunner sınıfları bunun için inşa edilmiştir. Ama lütfen konuştuğunuz koşulları silkeleyin. Bu koşullar betiği çalıştırmadan önce tanımlanmış mı yoksa bu koşullar ilk Spider sınıfının çalışması sırasında/bu koşullardan mı alınmıştır? – dron22
Cevabınız için teşekkürler, Bu iki örümcek için, ilk örümcek Myspider1 bir dizi bağlantıyı taramaktan sorumludur ve ikinci örümcek Myspider2, önceki bağlantılardan (Örümcek1'de kullanılan bağlantılar) eksik olan bağlantıları taramaktan sorumludur. İlk örümcek ilk önce çalıştırmak zorunda ve bir kez herhangi bir urls eksik olup olmadığını bulmak ve spider2 açmak için ya da değil açmak için seçin .. –