在程序中多次运行scrapy spider

2024-03-29 13:03:29 发布

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

我正在尝试创建一个程序,该程序多次使用scrapysipder以用于不同的用途。我的结构如下:

def init_crawl(OUTPUT_FILE, ticker):
    OUTPUT_FILE = "file:///" + OUTPUT_FILE
    process = CrawlerProcess({
        'USER_AGENT': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)',
        'FEED_URI': OUTPUT_FILE,
        'LOG_ENABLED': False,
    })
    process.crawl(SeccrawlerSpider, ticker=ticker)
    process.start() 


class GUIapp():
    def __init__(self, master):
        # stuff

    def execute(self, ticker):
        # tiker is user input
        init_crawl(file_loc, ticker)

def main():
    master = tk.Tk()
    app = GUIapp(master)
    master.mainloop()

if __name__ == "__main__":
    main()

这在第一次运行良好,但是在获得第一个ticker的结果之后,当我输入第二个ticker时,总是得到一个twisted.internet.error.ReactorNotRestartable。关于这个问题,我试过几种可能的解决办法,但似乎没有一个能直接适用于这个问题。我错过了什么?在


Tags: self程序masteroutputinitmaindefprocess