如何在其他方法中使用“\u init\u”的参数?

2024-09-28 22:37:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在_init_方法中使用一个参数'term'。如您所见,当_init方法获取此参数时,我想将其用作数据库集合的名称并将数据插入其中。但是我不知道如何在全班使用来自_initterm的值,那么有人对我有什么好的建议吗

class EPGDspider(scrapy.Spider):
        name = "EPGD"
        allowed_domains = ["epgd.biosino.org"]

    db = DB_Con()
    collection = db.getcollection(term)

    def __init__(self, term=None, *args, **kwargs):
        super(EPGDspider, self).__init__(*args, **kwargs)
        self.start_urls = ['http://epgd.biosino.org/EPGD/search/textsearch.jsp?textquery=%s&submit=Feeling+Lucky' % term]

    def parse(self, response):
        sel = Selector(response)
        sites = sel.xpath('//tr[@class="odd"]|//tr[@class="even"]')
        url_list = []
        base_url = "http://epgd.biosino.org/EPGD"

        for site in sites:
            item = EPGD()
            item['description'] = map(unicode.strip, site.xpath('td[6]/text()').extract())
            self.collection.update({"genID": item['genID']}, dict(item), upsert=True)
            yield item

Tags: 方法orgselfdbinitdefargsitem