【问题标题】:Scrapy init returns a NoneScrapy init 返回一个 None
【发布时间】:2020-03-02 22:40:24
【问题描述】:

我有一个乱七八糟的潦草脚本。

class QuotesSpider(scrapy.Spider):
name = 'quotes'

def __init__(self, *args, **kwargs):
    super(QuotesSpider, self).__init__(*args, **kwargs)
    self.cat = [kwargs.get('cat')] 
    print(self.cat)

def start_requests(self):
    #print(self.params)
    urls = ['https://google.com/html/?q=a%v%c']
    for url in urls:
        yield scrapy.Request(url=url, callback=self.parse)

在命令行上:

scrapy crawl quotes -a cat="avc"

当我运行命令时:

它打印“无”

如何在程序中访问通过命令行传递的值“avc”

【问题讨论】:

    标签: web-scraping scrapy web-crawler scrapy-pipeline


    【解决方案1】:

    您的代码中缺少一些东西。查看下面的示例代码

    class QuotesSpider(scrapy.Spider):
        name = 'quotes'
    
        def __init__(self, *args, **kwargs):
            super(QuotesSpider, self).__init__(*args, **kwargs)
            self.cat = kwargs.get('cat')
            print(self.cat)
    
        def start_requests(self):
            # print(self.params)
            urls = [f"https://www.google.com/search?q={self.cat}"]
            # urls = ['https://google.com/html/?q=a%v%c']
            for url in urls:
                yield scrapy.Request(url=url, callback=self.parse)
    
        def parse(self, response):
            print(response, "Response <---")
    

    请求的 google URL 错误,我已将其更改为新的。

    <200 https://www.google.com/search?q=avc> Response <---
    

    【讨论】:

      猜你喜欢
      • 2012-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-31
      • 1970-01-01
      • 2017-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多