Django调用Scrapy爬虫实现异步爬虫(前端输入爬虫字段信息,后端执行爬虫过程)

1. 首先我们修改爬虫文件的init方法:
添加如下代码:

    def __init__(self, keyWord=None, startTime=None, endTime=None, *args, **kwargs):
        super(MicroblogspiderSpider, self).__init__(*args, **kwargs)
        self.keyWord = keyWord
        self.startTime = startTime
        self.endTime = endTime

这里是传入了关键词、开始时间、结束时间三个参数,可以根据自己的情况来修改。
其余代码,参考微博关键词爬虫:Scrapy实现微博关键词爬虫(爬虫结果写入mongodb)
只不过是将刚才那一段代码加进去就可以了,然后调用self.keyWord等等字段就可以

2. 然后将我们的项目发布
具体内容参考另一篇文章:发布Scrapy项目到scrapyd

3. 在Django需要调用的模块中这样写

	#获取前端传来的字段信息
	keyWord = request.POST['keyWord']
    startTime = request.POST['startTime']
    endTime = request.POST['endTime']
    
    url = 'http://localhost:6800/schedule.json'
    data = {'project': 'blogSpider', 'spider': 'microBlogSpider', 'keyWord': keyWord, 'startTime': startTime, 'endTime': endTime }
    requests.post(url=url, data=data)

两个关键字段:

project:这个名称是我们发布的爬虫项目名称,具体查看刚才发布的步骤。
spider:这个名称是我们项目中存在的爬虫项目的name值。

前端通过执行这个方法就可以实现异步爬虫了

你可能感兴趣的:(scrapy爬虫)