python的爬虫(十一)(适合新手)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_43701019/article/details/100145823

——个人笔记(我的课程结束了,哈哈,但是我会用这些知识去弄点小项目,并记录下来,也可以供大家一起探讨哈哈,我也会继续学习爬虫,如果有有趣的知识点,我会继续记录下来,希望十一篇对你们有帮助,一起加油!)

一系列:
python爬虫(一)
python爬虫(二)
python爬虫(三)
python爬虫(四)
python爬虫(五)
python爬虫(六)
python爬虫(七)
python爬虫(八)
python爬虫(九)
python爬虫(十)


Scrapy存储方式

  • csv存储方式

    存储成csv文件的方法比较简单,只需在settings.py文件里,添加如下的代码即可。

    FEED_URI='./storage/data/%(name)s.csv'
    FEED_FORMAT='CSV'
    FEED_EXPORT_ENCODING='ansi'
    

    FEED_URI是导出文件的路径。'./storage/data/%(name)s.csv',就是把存储的文件放到与settings.py文件同级的storage文件夹的data子文件夹里。

    FEED_FORMAT 是导出数据格式,写CSV就能得到CSV格式。

    FEED_EXPORT_ENCODING 是导出文件编码,ansi是一种在windows上的编码格式。

  • Excel
    存储成Excel文件的方法要稍微复杂一些,我们需要先在setting.py里设置启用ITEM_PIPELINES,找到下面代码并且设置如下:

    #需要修改`ITEM_PIPELINES`的设置代码(去掉注释):
    	
    # Configure item pipelines
    # See https://doc.scrapy.org/en/latest/topics/item-pipeline.html
    ITEM_PIPELINES = {
         'jobuitest.pipelines.JobuitestPipeline': 300,
    }
    

    接着,我们就可以去编辑pipelines.py文件。存储为Excel文件,我们依旧是用openpyxl模块来实现,代码如下:

    import openpyxl
    
    class JobuiPipeline(object):
    #定义一个JobuiPipeline类,负责处理item
        def __init__(self):
        #初始化函数 当类实例化时这个方法会自启动
            self.wb =openpyxl.Workbook()
            #创建工作薄
            self.ws = self.wb.active
            #定位活动表
            self.ws.append(['公司', '职位', '地址', '招聘信息'])
            #用append函数往表格添加表头
            
        def process_item(self, item, spider):
        #process_item是默认的处理item的方法,就像parse是默认处理response的方法
            line = [item['company'], item['position'], item['address'], item['detail']]
            #把公司名称、职位名称、工作地点和招聘要求都写成列表的形式,赋值给line
            self.ws.append(line)
            #用append函数把公司名称、职位名称、工作地点和招聘要求的数据都添加进表格
            return item
            #将item丢回给引擎,如果后面还有这个item需要经过的itempipeline,引擎会自己调度
    
        def close_spider(self, spider):
        #close_spider是当爬虫结束运行时,这个方法就会执行
            self.wb.save('./jobui.xlsx')
            #保存文件
            self.wb.close()
            #关闭文件
    

猜你喜欢

转载自blog.csdn.net/weixin_43701019/article/details/100145823