documentに続いて、私はPythonスクリプトからscrapyを実行できますが、私は治療結果を取得できません。Pythonスクリプト内からScrapyを実行することについて混乱しています
これは私のクモです:
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from items import DmozItem
class DmozSpider(BaseSpider):
name = "douban"
allowed_domains = ["example.com"]
start_urls = [
"http://www.example.com/group/xxx/discussion"
]
def parse(self, response):
hxs = HtmlXPathSelector(response)
rows = hxs.select("//table[@class='olt']/tr/td[@class='title']/a")
items = []
# print sites
for row in rows:
item = DmozItem()
item["title"] = row.select('text()').extract()[0]
item["link"] = row.select('@href').extract()[0]
items.append(item)
return items
お知らせ最後の行、私が実行した場合、私は、返された解析結果を使用しよう:
scrapy crawl douban
端末は戻り結果
を印刷することができしかし、私はPythonスクリプトから返された結果を得ることができません。ここに私のPythonスクリプトは次のとおりです。
from twisted.internet import reactor
from scrapy.crawler import Crawler
from scrapy.settings import Settings
from scrapy import log, signals
from spiders.dmoz_spider import DmozSpider
from scrapy.xlib.pydispatch import dispatcher
def stop_reactor():
reactor.stop()
dispatcher.connect(stop_reactor, signal=signals.spider_closed)
spider = DmozSpider(domain='www.douban.com')
crawler = Crawler(Settings())
crawler.configure()
crawler.crawl(spider)
crawler.start()
log.start()
log.msg("------------>Running reactor")
result = reactor.run()
print result
log.msg("------------>Running stoped")
私はreactor.run()
で結果を取得しようとするが、それは何も返さない、
にはどうすればいい結果を得ることができますか?
スクリプトはどこに置いてください?治療プロジェクト、スパイダーフォルダー、または何ですか? –
相互参照[この回答](http://stackoverflow.com/a/27744766/771848) - スクリプトからScrapyを実行する方法の詳細な概要を示す必要があります。 – alecxe