如何修复Scrapy蜘蛛,当它作为Django包中的脚本执行时,不会更深入到回调中?

时间:2019-05-08 08:46:21

标签: django python-3.x scrapy

因此,基本上,我正在尝试制作一个Django应用,用户可以在该应用中从FB用户所在的所有组的所有帖子中抓取信息。我打算从视图中执行抓抓蜘蛛,也许是在单击按钮时或者。如果您想看,

`(It said that I have to have a code before a pastebin link, sorry im new to SO)`

https://pastebin.com/X1PqsFHu

(请注意,蜘蛛实际上并不是那么好,但是它在[某种程度上]有效 我计划编辑代码,而不是产生信息,我只是从Django应用程序导入模型并保存。)

所以我将其保存到名为scraper.py的文件中,并将其放置在Django应用程序的应用程序包中。现在,要执行蜘蛛程序,我只是遵循了Scrapy文档。我将Crawler从scrapy应用于模块:     进口沙皮     从scrapy.crawler导入CrawlerProcess

from scraper import GroupPostsSpider


def scrape(inp_email, inp_pass):
    spider = GroupPostsSpider(email=inp_email, password=inp_pass)
    process = CrawlerProcess({
        'USER_AGENT': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 
5.1)',
        'ROBOTSTXT_OBEY': False,
    })

    process.crawl(spider)
    process.start()

现在,当我从一个拼凑的项目中运行Spider时,它实际上是从头到尾执行的,最后是正确的日志。但是,当我从django应用程序中的模块测试上面的脚本时,它似乎并没有转到由scrapy.Request实例产生的回调调用的其他方法。你们知道如何解决这个问题,我非常需要它...

仅提供一些其他信息,我试图在蜘蛛网正确关闭后再次运行它。但它说

Raise error.ReactorNotRestartable()
twisted.internet.error.ReactorNotRestartable

所以我想这与绕线机和履带有关吗?

0 个答案:

没有答案