Scrapy Scarpy outoput json

Scrapy Scarpy outoput json,scrapy,Scrapy,我正在努力让Scrapy只向json文件输出“点击数”。我在这方面是新手,所以如果有一个链接我应该回顾一下,这可能会有所帮助(我花了相当多的时间在谷歌上搜索,仍在挣扎),不过代码更正技巧更受欢迎:) 我正在编写scrapy教程(),原始代码输出一个长列表,包括字段名和输出,如“field:output”,其中显示空白项和找到的项。我只想包括找到的链接,并将它们输出到一个文件中,不带字段名 对于我正在尝试的以下代码,如果我发出“scrapy crawl quotes2-o quotes.json>

我正在努力让Scrapy只向json文件输出“点击数”。我在这方面是新手,所以如果有一个链接我应该回顾一下,这可能会有所帮助(我花了相当多的时间在谷歌上搜索,仍在挣扎),不过代码更正技巧更受欢迎:)

我正在编写scrapy教程(),原始代码输出一个长列表,包括字段名和输出,如“field:output”,其中显示空白项和找到的项。我只想包括找到的链接,并将它们输出到一个文件中,不带字段名

对于我正在尝试的以下代码,如果我发出“scrapy crawl quotes2-o quotes.json>output.json,它会工作,但quotes.json总是空的(即,如果我发出“scrapy crawl quotes2-o quotes.json”,则包括在内)

在本例中,作为一个实验,我只想在URL中包含字符串“Jane”时返回URL(例如,/author/Jane Austen):

我尝试过“屈服”和项目选项,但速度不够快,无法让它们正常工作。我的长期目标是访问网站,而不必了解html树(这本身可能是错误的方法)并查找URL字符串中包含特定文本的URL


想法?我猜这不太难,但我无法理解。

这是因为你正在打印项目,你必须明确地告诉Scrapy“交出”它们。 但在此之前,我不明白为什么要循环通过锚节点,而不是应该使用css或XPath选择器循环引用,提取引用中的所有作者链接,最后检查URL是否包含特定字符串(Jane for you case)


Thx Rastacode,感谢您的帮助…我认为还需要另一个撇号,所以代码行应该是“jane_url=quote.xpath('.//a[contains(@href,“jane”)]”)。extract_first()我实际上已经让它使用了yield,但正在试图找到一种从输出中过滤出字段名的方法。不过,不用担心,感谢您的帮助!
import scrapy

class QuotesSpider(scrapy.Spider):
    name = "quotes2"
    start_urls = [
        'http://quotes.toscrape.com/tag/humor/',
    ]

    def parse(self, response):
        for quote in response.css('a'):
            for i in quote.css('a[href*=Jane]::attr(href)').extract():
                if i is not None:
                    print(i)
for quote in response.css('.quote'):
   jane_url = quote.xpath('.//a[contains(@href, "Jane")]').extract_first()
   if jane_url is not None:

      yield {
       'url': jane_url
   }