scrapy存入excel时,excel文件被反复擦除重写。文件大小始终不超过100k,请问这种情况改如何解决
怀疑是每次都在新建文件,具体代码如下
from openpyxl import Workbook
class ExcelPipline(object):
def __init__(self):
# 类实例化
self.wbook = Workbook()
# 激活工作表
self.wsheet = self.wbook.active
#设置表头
self.wsheet.append(['省份','城市','小区名字','是否开盘','销售电话','每平米价格',
'房屋卖点','几居室','面积','地址','房天下详情url'])
def process_item(self, item, spider):
if item.collection == 'newhouseitem':
# 把数据的每一项整理出来
data = [item['province'],item['city'],item['house_name'],item['sale'],item['phone_num'],item['price'],
item['tags'],item['rooms'],item['area'],item['address'],item['origin_url']]
# 将数据以行的形式添加到xlsx
self.wsheet.append(data)
#自定义文件位置、标题
self.wbook.save('F:\\newhouseitem.xlsx')
return item
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
最终决定将数据存为.csv文件,通过wps另存为.xlsx
你这种写法理论上是没问题的。
Pipeline的
__init__
在整个爬虫生命周期中,只会执行一次。每次处理item,然后保存。首先,确保你的item有返回值。在
process_item
中打印下日志看下。然后,换一种方式。
最后,你用数据库啥的来存数据吧。