小结&scrapy&CSV

文章讲述了如何在命令行中运行Scrapy爬虫,以及如何将爬取的数据存储到MySQL数据库和保存为CSV、XML、JSON文件。提到了`writerow`和`writerows`方法用于CSV文件的写入,还展示了字典类型数据写入CSV的例子。
摘要由CSDN通过智能技术生成

命令行运行scrapy

from scrapy.cmdline import execute
execute(['scrapy','crawl','centoschina_cn'])

在这里插入图片描述

pipeline写入MySQL数据库

在这里插入图片描述在这里插入图片描述

批量插入

在这里插入图片描述

在这里插入图片描述

在这里插入代码片

保存为CSV,xml,json文件

scrapy crawldouban -o douban.csv
scrapy crawldouban -o douban.xml
scrapy crawldouban -o douban.json

写入CSV

writerow : 写入一行。
writerows :写入多行。

writerow方法每次仅可以写入一行。
但写入的函数较多时,可以使用writerows()方法,该方法可以实现一次写入多行。
writerows()方法中的参数可以使用列表嵌套的方式。

# 导入模块
import csv
# 新建列表存储要写入的信息
list_1 = ['name','height']  
list_2 = ['Mike','180'] 
list_3 = ['Bob','160']  
list_4 = ['andy','170']  

# 设置文件路径
file_path = '工作/学生体检表.csv'

# 以自动关闭文件的方式写入
with open(file_path, 'w', encoding='utf-8') as f:
    # 调用模块的类:模块名.类名()
    csv_writer = csv.writer(f)
    # 调用类中的方法:对象.方法名()
    csv_writer.writerow(list_1)
    csv_writer.writerow(list_2)
    csv_writer.writerows([list_3,list_4])

字典类型写入CSV

# 导入 csv 模块
import csv

# 新建两个字典
dict1 = {'name': '张三', 'height': '176'}
dict2 = {'name': '李四', 'height': '177'}

# 新建列表设置文件的表头
head = ['name', 'height']

# 设置文件路径
file_path = '工作/学生体检表.csv'

# 以自动关闭的方式写入文件
with open(file_path, 'w', encoding='utf-8') as f:
    
    # 调用模块的类:模块名.类名()
    # 参数 f 为 csv 文件的对象; 
    # 参数 fieldnames 的作用是定义文件的表头
    dict_write = csv.DictWriter(f, fieldnames=head)

    # 写入文件的表头
    dict_write.writeheader()

    # writerows一次性写入多行
    dict_write.writerows([dict1,dict2])
   

    def save_csv(self,area,data):
        with open('{}.csv'.format(area), 'a+',encoding='gbk') as f:
            csv_writer = csv.writer(f)
            list1 = [str(data['project_id']),data['project_name']]
            csv_writer.writerow(list1)



    def get_info(self,area,every_page_url):
        print(every_page_url)
        result = requests.get(every_page_url).json()['data']['result']
        if len(result)==0:
            return
        else:
            for i in result:
                self.save_file(area, {'project_name':i['project_name'],'project_id':i['project_id']})
                self.save_csv(area, {'project_name': i['project_name'], 'project_id': i['project_id']})
            return 1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值