Scrapy 打印到 json 文件

Scrapy print to json file

我想 运行 一个针对 craigslist 的蜘蛛,并使用 scrapy 将结果保存到 json 文件中。我的蜘蛛在控制台中显示结果,但我的 .json 文件是空的。我使用的命令是:

scrapy 运行spider detroit.py -o detroit.json

谁能给点启发,谢谢!

from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from craigslist_sample.items import CraigslistSampleItem

class MySpider(BaseSpider):
        name = "craig"
        allowed_domains = ["craigslist.org"]
        start_urls = ["http://detroit.craigslist.org/search/sof"]


        def parse(self, response):
                hxs = HtmlXPathSelector(response)
                titles = hxs.select("//span[@class='pl']")
                for titles in titles:
                        title = titles.select("a/text()").extract()[0]
                        link = titles.select("a/@href").extract()[0]
                        print title, link

那是因为您只是打印结果。您需要 实例化项目 和 return 它们:

def parse(self, response):
    for elm in response.xpath("//span[@class='pl']//a"):
        item = CraigslistSampleItem()
        item["title"] = elm.xpath("text()").extract_first()
        item["link"] = elm.select("href").extract_first()
        yield item