Scrapy编码和json格式问题

时间:2017-05-22 16:14:10

标签: python scrapy

我正在使用python 3.6x版本和scrapy来提取一些在线数据。

import scrapy

class QuotesSpider(scrapy.Spider):
name = "extract"

start_urls = [
    'https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10174455955',
]

def parse(self, response):
    question_title = response.css("div.ptsQes P::text").extract_first().strip()
    question_content = response.css("div.ptsQes P.queTxt::text").extract()
    best_answer = response.css("div.mdPstd.mdPstdBA.othrAns.lstLast.clrfx div.ptsQes p.queTxt::text").extract()
    filename = 'extract.json'
    with open(filename, 'wb') as f:
        f.write(question_title.encode("utf8")),
        f.write(question_content[0].encode("utf8")),
        f.write(best_answer[0].encode("utf8"))
    self.log('Saved file %s' % filename)

我曾尝试从上面编写的代码中提取数据,但如果有人愿意帮助,我会遇到几个问题。

  1. 如何将其制作成json格式,即[' question_title' :' XXX',' question_content':' XXX',' best_answer':' xxx']因为我只能得到一些字符串

  2. 为什么我不能在response.css ...之后放置编码(" utf8"),即

  3.   

    response.css(" div.ptsQes   P ::文本" ......)extract_first()条()编码(" UTF8&#34)

    它不起作用。 它没有编码任何数据,但留给我unicode。

    如果有人知道的话,谢谢。

1 个答案:

答案 0 :(得分:0)

使您的数据json格式化。我会使用内置的json库。

import json
json.dumps({'question_title' : question_title,
            'question_content':'question_content',
            'best_answer': 'best_answer'}).encode('utf8')