用 scrap 爬取处理 csv 源

1.以 csvdeed 模板创建爬虫的流程

1.创建项目:scrapy startproject mycsv

2.编写 Item.py 文件,定义要提取的数据

3.查看可用爬虫模板:scrapy genspider -l

4.以 csvfeed 模板创建一个 mycsvspider.py 文件,在 spider 目录下:scrapy genspider -t csvdeed mycsvfeed iqianyue.com

  • header 属性存放每一列的头名字

  • delimiter 属性存放字段间的间隔符

5.编写好 mycsvspider.py 文件后,切换到项目文件运行:scrapy crawl mycsvspider --nolog

 

2.读取 csv 文件

        with open(getattr(self, "file", "todo.csv"), "rU") as f:
            reader = csv.DictReader(f)
            for line in reader:
                request = Request(line.pop('url')) #弹出以 url 为键对应的值
                request.meta['fields'] = line #把数据以字典形式存入
                yield request

文件第一行会被自动作为标题处理,做为每一行这一列的键索引值

getattr(self,'varible','default') 这里运行爬虫时打开的是默认的 defult 文件,相当于命令 scrapy crawl 爬虫名 -a varible=default

这段代码相当于命令 scrapy crawl 爬虫名 -a file=todo.csv

    def parse(self, response):
        #没有自定义 item.py 文件,手动为 ItemLoader 提供
        item = Item()
        l = ItemLoader(item=item, response=response)

        for name, xpath in response.meta['fields'].iteritems(): #循环字段
            if xpath:#如果路径存在就添加容器,并存储
                item.fields[name] = Field()
                l.add_xpath(name, xpath)

        return l.load_item()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值