Scrapy保存到txt文件或者数据库里面

首先要理解yield的作用。

在pipelines.py文件中定义了保存方法,但是一直没有保存,为什么呢?

file = open("E:\\Scripy\\spidersitems.txt", "a")  # 以追加的方式打开文件,不存在则创建
        # 因为item中的数据是unicode编码的,为了在控制台中查看数据的有效性和保存,
        # 将其编码改为utf-8
        item_string = str(item).decode("unicode_escape").encode('utf-8')
        file.write(item_string)
        file.write('\n')
        file.close()
        print item_string  #在控制台输出
        return item  # 会在控制台输出原item数据,可以选择不写

最后找到原因,Setting.py里面没有配置,配置如下:

ITEM_PIPELINES = {
    'tutorial.pipelines.TutorialPipeline': 300,
}


这样就可以将数据保存了。


你可能感兴趣的:(Python爬虫)