如何访问在 scrapy 中通过 -s 的命令行参数?
How to access a command line argument that pass by -s in scrapy?
我想在蜘蛛之外得到一个论点。在scrapy 1.7版本之前,我可以这样做:
from scrapy.conf import settings
但是现在,而不是
from scrapy.utils.project import get_project_settings
但是,我发现了一些不同的东西,后一种方式,我无法获得我通过命令行 -s 传递的参数,如下所示:
scrapy parse --spider=result_spider -c _parse_results -d 3 --nocolour "http://sss.com" -s ACT=grab_result
ACT参数在爬虫中可以访问,但是在其他文件中,即使使用get_the_settings()也无法访问。
from scrapy.utils.project import get_project_settings
from sqlalchemy import Column, String, Integer
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
settings = get_project_settings()
class Keyword(Base):
__tablename__ = settings.get('KEYWORD_TABLE', 'hwords')
print('ACT value is: %s' % settings['ACT']) # The value is None, even I have pass something
id = Column(Integer, primary_key=True)
word = Column(String(256), unique=True)
def __repr__(self):
return "<%s(word='%s')>" % (self.__tablename__, self.word)
到处都找不到答案,get_project_settings()的使用也不像我的。看来得用argparse来获取命令行参数了
我想在蜘蛛之外得到一个论点。在scrapy 1.7版本之前,我可以这样做:
from scrapy.conf import settings
但是现在,而不是
from scrapy.utils.project import get_project_settings
但是,我发现了一些不同的东西,后一种方式,我无法获得我通过命令行 -s 传递的参数,如下所示:
scrapy parse --spider=result_spider -c _parse_results -d 3 --nocolour "http://sss.com" -s ACT=grab_result
ACT参数在爬虫中可以访问,但是在其他文件中,即使使用get_the_settings()也无法访问。
from scrapy.utils.project import get_project_settings
from sqlalchemy import Column, String, Integer
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
settings = get_project_settings()
class Keyword(Base):
__tablename__ = settings.get('KEYWORD_TABLE', 'hwords')
print('ACT value is: %s' % settings['ACT']) # The value is None, even I have pass something
id = Column(Integer, primary_key=True)
word = Column(String(256), unique=True)
def __repr__(self):
return "<%s(word='%s')>" % (self.__tablename__, self.word)
到处都找不到答案,get_project_settings()的使用也不像我的。看来得用argparse来获取命令行参数了