2013-09-27 3 views
2

Я создал паука с именем aqaq в имени файла image.py. содержание image.py выглядит следующим образом:Вызов Scrapy Spider из скрипта python?

from scrapy.spider import BaseSpider 
from scrapy.selector import HtmlXPathSelector 
from scrapy.http import Request 
a=[] 
from aqaq.items import aqaq 
import os 
class aqaqspider(BaseSpider): 
    name = "aqaq" 
    allowed_domains = ["aqaq.com"] 
    start_urls = [ 
         "http://www.aqaq.com/list/female/view-all?limit=all" 
    ] 

    def parse(self, response): 
     hxs = HtmlXPathSelector(response) 
     sites=hxs.select('//ul[@class="list"]/li') 
     for site in sites: 
       name=site.select('a[@class="product-name"]/@href').extract() 
       a.append(name) 
     f=open("url","w+") 
     for i in a: 
       if str(i)=='[]': 
         pass; 
       else: 
         f.write(str(i)[3:-2]+os.linesep) 
         yield Request(str(i)[3:-2].rstrip('\n'),callback=self.parsed) 

     f.close() 
    def parsed(self,response): 
     hxs = HtmlXPathSelector(response) 
     sites=hxs.select('//div[@class="form"]') 
     items=[] 
     for site in sites: 
       item=aqaq() 
       item['title']=site.select('h1/text()').extract() 
       item['cost']=site.select('div[@class="price-container"]/span[@class="regular-price"]/span[@class="price"]/text()').extract() 
       item['desc']=site.select('div[@class="row-block"]/p/text()').extract() 
       item['color']=site.select('div[@id="colours"]/ul/li/a/img/@src').extract() 
       items.append(item) 
       return items 

я пытаюсь запустить этот паук с моим питон скрипт, который выглядит следующим образом:

from twisted.internet import reactor 
from scrapy.crawler import Crawler 
from scrapy.settings import Settings 
from scrapy import log, signals 
from spiders.image import aqaqspider 
from scrapy.xlib.pydispatch import dispatcher 
def stop_reactor(): 
    reactor.stop() 
dispatcher.connect(stop_reactor, signal=signals.spider_closed) 
spider = aqaqspider(domain='aqaq.com') 
crawler = Crawler(Settings()) 
crawler.configure() 
crawler.crawl(spider) 
crawler.start()a 
log.start(loglevel=log.DEBUG) 
log.msg("------------>Running reactor") 
result = reactor.run() 
print result 
log.msg("------------>Running stoped") 

при выполнении этого скрипта я получаю следующая ошибка:

2013-09-27 19:21:06+0530 [aqaq] ERROR: Error downloading <GET http://www.aqaq.com/list/female/view-all?limit=all>: 'Settings' object has no attribute 'overrides' 

Я новичок и нуждаюсь в помощи ???

ответ

3

Вы должны использовать CrawlerSettings вместо Settings.

Изменить эту строку:

from scrapy.settings import Settings 

по:

from scrapy.settings import CrawlerSettings 

И эта линия:

crawler = Crawler(Settings()) 

по:

crawler = Crawler(CrawlerSettings()) 
+0

Thnx он работал е или мне – user2823667

+0

Что делать, если мой скрипт python находится в другом каталоге? Не могли бы вы также взглянуть на: http://stackoverflow.com/questions/28020360/import-items-file-in-another-script-in-python –

Смежные вопросы