Scrapy选择器在shell中工作,但不在蜘蛛本身

时间:2017-09-01 05:58:01

标签: python scrapy scrapy-spider

我对python和scrapy比较陌生;几天前刚开始从教程中学习。

就像标题所说的那样,我一直试图通过从fanfiction.net上抓取章节来完成一个简单的文本抓取操作。但是,我遇到了障碍,尽管shell中的测试选择器运行得很好,但是当我运行命令scrapy crawl fanfiction -o fanfiction.json时,蜘蛛本身仍然没有返回任何内容。

这是我到目前为止的代码;它本质上是doc.scrapy.org教程代码的修改版本。

import scrapy
class FFSpider(scrapy.Spider):
    name = "fanfiction"
    start_urls = [
        'https://www.fanfiction.net/s/12580108/1/Insane-Gudako',
        'https://www.fanfiction.net/s/12580108/2/Insane-Gudako',
    ]

    def parse(self, response):
        from scrapy.shell import inspect_response
        inspect_response(response, self)
        for chapter in response.css('div.fanfiction'):
            yield {
                'summary': chapter.css('.storytext p').xpath('text()').extract()
            }

在内联shell调用中,使用chapter.css('.storytext p').xpath('text()').extract()进行测试会正确返回文本,但是一旦蜘蛛完成爬网,fanfiction.json仍然是一个空文件。

这里有什么问题?

0 个答案:

没有答案