scrapy管道类的访问实例

我想访问变量self.cursor以利用活动的postgreSQL连接,但我无法弄清楚如何访问scrapy的管道类实例。scrapy管道类的访问实例

class ScrapenewsPipeline(object): 

def open_spider(self, spider):

self.connection = psycopg2.connect(

host= os.environ['HOST_NAME'],

user=os.environ['USERNAME'],

database=os.environ['DATABASE_NAME'],

password=os.environ['PASSWORD'])

self.cursor = self.connection.cursor()

self.connection.set_session(autocommit=True)

def close_spider(self, spider):

self.cursor.close()

self.connection.close()

def process_item(self, item, spider):

print ("Some Magic Happens Here")

def checkUrlExist(self, item):

print("I want to call this function from my spider to access the

self.cursor variable")

请注意,我知道我可以用yield item得到process_item访问,但该功能是做其他的东西,我想通过self.cursorcheckUrlExist连接的访问​​,并能够从调用类的实例我蜘蛛随意! 谢谢。

回答:

你可以在这里做spider.variable_name来访问你所有的蜘蛛类变量。

class MySpider(scrapy.Spider): 

name = "myspider"

any_variable = "any_value"

这里你管线

class MyPipeline(object): 

def process_item(self, item, spider):

spider.any_variable

我建议你创建就像我宣布我的例子any_variable你的蜘蛛类的连接,那将是在使用self.any_variable您的蜘蛛在你的管道进入,它将可以通过spider.any_variable

以上是 scrapy管道类的访问实例 的全部内容, 来源链接: utcz.com/qa/259761.html

回到顶部