Scrapy CSVFeedSpider,本章介绍了CSVFeedSpider
类常用属性delimiter
,headers
,函数parse_row()
,以及CSVFeedSpider
的具体实例。
CSVFeedSpider 类
class scrapy.contrib.spiders.CSVFeedSpider
CSVFeedSpider
除了其按行遍历而不是节点之外,其他和XMLFeedSpider
十分类似,每次迭代时会调用函数parse_row()
- delimiter
在CSV文件中用于区分字段的分隔符,类型为string,默认值为逗号(‘,’)。 -
headers
一个列表,包含CSV文件中需要提取的字段名称。 -
parse_row(response, row)
该方法用于接收一个response
对象以及一个header
字段为键的字典。您也可以覆盖adapt_response
及process_results
方法来进行预处理和后处理。
CSVFeedSpider 示例
from scrapy.spiders import CSVFeedSpider
from tutorial.items import TutorialItem
class MySpider(CSVFeedSpider):
name = 'geek-docs'
allowed_domains = ['iqianyue.com']
# 设置要分析的 XML 文件地址
start_urls = ['http://yum.iqianyue.com/weisuenbook/pyspd/part12/mydata.csv']
delimiter = ','
headers = ['name', 'sex', 'addr', 'email']
def parse_row(self, response, row):
item = TutorialItem()
item['name'] = row['name']
item['sex'] = row['sex']
item['addr'] = row['addr']
item['email'] = row['email']
print("姓名是:{}".format(item['name']))
print("性别是:{}".format(item['sex']))
print("地址是:{}".format(item['addr']))
print("邮件是:{}".format(item['email']))
return item
mydata.csv
内容显示如下:
运行程序,输出结果如下: