我制作了一个在线提取资料的程序,如下所示。它工作并生成csv文件。但是,如excel文件中所示,数据似乎不是逗号分隔。 如何解决此问题以使文件以逗号分隔?
import scrapy
class JPItem(scrapy.Item):
question_title = scrapy.Field()
question_content = scrapy.Field()
question_link = scrapy.Field()
best_answer = scrapy.Field()
best_answer_link = scrapy.Field()
class JPSpider(scrapy.Spider):
name = "jp"
allowed_domains = ['detail.chiebukuro.yahoo.co.jp']
start_urls = [
'https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q' + str(x)
for x in range (10000000000,100000000000)
]
def parse(self, response):
item = JPItem()
item['question_title'] = response.css("div.mdPstd.mdPstdQstn.sttsRslvd.clrfx div.ttl h1::text").extract_first()
item['question_content'] = ''.join([i for i in response.css("div.mdPstdQstn div.ptsQes p::text").extract()])
item['question_link'] = ''.join(response.css("div.mdPstdQstn p:not([class]) a::text").extract())
item['best_answer'] = ''.join([i for i in response.css("div.mdPstdBA div.ptsQes p.queTxt::text").extract()])
item['best_answer_link'] = ''.join(response.css("div.mdPstdBA p:not([class]) a::text").extract())
yield item
答案 0 :(得分:1)
每个item
属性都以列表形式返回,这就是它们在您的文件中以逗号分隔的原因。但是,您处理的最后四个项目属性不会是列表,因为您在其上使用''.join()
。如果您希望每个列表项在Excel中的csv文件中填充自己的单元格,则需要分别遍历列表和yield
每个列表。