最近上web课,有一门就是scrapy爬虫写入txt文件,自己也是找了很多种方法,最终实现
写入json或者csv
执行爬虫文件时添加 -o spidername.csv或者-o spidername.json
spider那么是你创建的爬虫的名字
json文件可能会出现乱码,在setting.js文件中设置编码格式即可
FEED_EXPORT_ENCODING='utf-8'
from scrapy import cmdline
cmdline.execute('scrapy crawl txms -o txms.csv'.split())
写入txt
首先设置setting.py文件,把遵循robots协议改为False
ROBOTSTXT_OBEY = False
然后再把ITEM_PIPELINES前边的注释取消掉
ITEM_PIPELINES = {
'TXmovies.pipelines.TxmoviesPipeline': 300,
}
然后在pipeline.py中进行数据的处理
class TxmoviesPipeline:
def open_spider(self, spider):
self.file = open('txms.txt', 'w',encoding = 'utf-8')#encoding = 'utf-8'制定编码格式
#爬虫开始运行时执行,创建文件并打开
def close_spider(self, spider):
self.file.close()
#爬虫运行结束时关闭txt文件的写入
def process_item(self, item, spider):
try:
res=dict(item)#将item转化为字典类型
line=res['name']#参照你item里边获取的数据名字
row=res['description']#参照你item里边获取的数据名字
self.file.write(line+'\t'+row+'\n') #写入文件
print(item)#调试区输出爬取结果
return item
except:
pass