小结&scrapy&CSV

命令行运行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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值