首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从pipelines.py访问蜘蛛类中的变量参数

如何从pipelines.py访问蜘蛛类中的变量参数
EN

Stack Overflow用户
提问于 2019-05-21 13:26:11
回答 1查看 165关注 0票数 0

我有3个蜘蛛文件和类。并将项目信息保存在csv文件中,该文件具有不同的文件名、被告、查询条件的可变参数。为此,我需要访问蜘蛛类参数。

所以我的问题是三个。

  1. 如何访问蜘蛛类的参数?
  2. 制作每个csv文件的最佳方法是什么?触发条件是在解析函数处调用请求,以获得新的搜索结果。
  3. logger = logging.getLogger(__name__) --它不在pipelines.py里工作--我怎么能打印这些信息?

贝娄是我的日志代码风格

代码语言:javascript
复制
logger.log(logging.INFO,'\n======= %s ========\n', filename)

我已经在谷歌搜索了很多次了。但我找不到解决办法。

我确实尝试过使用from_crawler函数,但是我找不到适应的情况

代码语言:javascript
复制
Scrapy 1.6.0
python 3.7.3
os window 7 / 32bit

代码:

代码语言:javascript
复制
class CensusGetitemSpider(scrapy.Spider):
    name = 'census_getitem'
    startmonth=1
    filename = None

def parse(self, response):
    for x in data:
       self.filename = str(startmonth+1)
       .
       .  
       .
       yield item

    yield scrapy.Request(link, callback=self.parse)
EN

回答 1

Stack Overflow用户

发布于 2019-05-21 15:32:55

  1. 您可以使用在大多数管道方法中传递的pipeline.py参数从spider访问蜘蛛类和实例属性。

例如:

代码语言:javascript
复制
open_spider(self, spider):
    self.filename = spider.name

您可以在这里看到更多关于项目管道的信息,https://docs.scrapy.org/en/latest/topics/item-pipeline.html

  1. 您可以直接从命令行保存它,只需定义一个文件名:

scrapy crawl yourspider -o output.csv

但是,如果确实需要从蜘蛛中设置它,则可以使用每个蜘蛛的自定义设置,例如:

代码语言:javascript
复制
 class YourSpider(scrapy.Spider):
    name = 'yourspider'
    start_urls = 'www.yoursite.com'
    custom_settings = {
        'FEED_URI':'output.csv',
        'FEED_FORMAT': 'csv',
    }
  1. 使用spider.logger.info('Your message')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56239351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档