scrapy爬虫输出格式错乱.csv/.json/.xml
scrapy输出格式cmd命令行:
scrapy crawl 爬虫名字 -o 自定义文件名.格式
默认文件放在spiders目录下
json 类型:scrapy crawl one_spider -o one_spider.json
xml 类型:scrapy crawl one_spider -o one_spider.xml
csv 类型:scrapy crawl one_spider -o one_spider.csv
注意要在setting文件中配置编码方式:
FEED_EXPORT_ENCODING = 'utf-8'
(这里要配置爬取页面的对应编码方式,不然会出现错乱,如下面三图情况)
# -*- coding: utf-8 -*-
import scrapy
class OneSpiderSpider(scrapy.Spider):
name = 'one_spider' # 自定义的爬虫名字
allowed_domains = ['www.qiushibaike.com'] # 允许爬取的域名,限制爬取的范围必须为域名下的,可以为多个
start_urls = ['https://www.qiushibaike.com/hot/'] #给定一个起始的url
def parse(self, response): #parse解析函数,这是一个父类的方法,这里就是重写这个方法
#参数response就是响应后的内容
#这里必须返回一个可迭代对象(生成器,列表等)
div_list = response.xpath("//div[@id='content-left']/div")
# div_listli 放的是selector(选择器)对象< Selector xpath = "//div[@id='content-left']/div" data = '<div class="article block untagged mb15 ' >
item_dates=[]
print("-------------------------------------")
for i in div_list:
head_photo = i.xpath("//div[@class='author clearfix']//img/@src").extract() # 获取头像
head_name = i.xpath("//div[@class='author clearfix']//h2/text()").extract() # 获取名字
item_date={
"头像":head_photo,
"用户名": head_name,
}
item_dates.append(item_date)
return item_dates
print("-------------------------------------")
json:
xml:
csv:(wps word 打开)