zoukankan      html  css  js  c++  java
  • Scrapy 爬虫模板--CSVFeedSpider

    这一篇文章我要讲解一下 Scrapy 爬虫模板中的 CSVFeedSpider 模板,该模板可以说是目前 Scrapy 中最简单的模板,因此这篇文章不会有太长的篇幅。CSVFeedSpider 模板主要用于解析 CSV 文件,它是以行为单位来进行迭代,每迭代一行调用一次 parse_row() 方法。该模板常用属性如下:

    1. delimiter:字段分隔符,默认英文逗号分隔;
    2. quotechar:CSV 字段中如果包含回车、引号和逗号,那么这个字段必须用双引号括起来。这个属性就是设置括起来字段所用的符号,默认为半角双引号;
    3. headers:CSV 文件标题头,该属性是一个列表。

    零、例子

    下面我们以爬取贵州省科技特派员 CSV 数据为例来看一下 CSVFeedSpider 的使用方法。

    # -*- coding: utf-8 -*-
    from scrapy.spiders import CSVFeedSpider
    from ..items import CsvfeedspiderItem
    
    
    class CsvdataSpider(CSVFeedSpider):
        name = 'csvdata'
        allowed_domains = ['gzdata.gov.cn']
        start_urls = ['http://gzopen.oss-cn-guizhou-a.aliyuncs.com/科技特派员.csv']
        headers = ['name', 'SearchField', 'Service', 'Specialty']
        delimiter = ','
        quotechar = '
    '
    
        def parse_row(self, response, row):
            i = CsvfeedspiderItem()
            i["name"] = row["name"]
            i["searchField"] = row["SearchField"]
            i["service"] = row["Service"]
            i["specialty"] = row["Specialty"]
            return i
    
        def adapt_response(self, response):
            return response.body.decode('gb18030')
    
    import scrapy
    
    
    class CsvfeedspiderItem(scrapy.Item):
        name = scrapy.Field()
        searchField = scrapy.Field()
        service = scrapy.Field()
        specialty = scrapy.Field()
    
  • 相关阅读:
    addddd
    editor
    ui
    java.lang.NoClassDefFoundError: org/apache/poi/poifs/filesystem/FileMagic
    tomcat配置本地域名
    Spring Boot+MyBatis项目搭建
    约瑟夫环问题(100围坐一圈报数,报3出圈)
    java二分查找法
    bootstrap-table数据导出及Checkbox相关设置
    java按给定字节数截取含有中英文的字符串
  • 原文地址:https://www.cnblogs.com/gangzhucoll/p/12778108.html
Copyright © 2011-2022 走看看