Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Django视图中运行Scrapy_Python_Django_Web Scraping_Scrapy_Web Crawler - Fatal编程技术网

Python 在Django视图中运行Scrapy

Python 在Django视图中运行Scrapy,python,django,web-scraping,scrapy,web-crawler,Python,Django,Web Scraping,Scrapy,Web Crawler,因此,我正在从事以下项目: 我正在使用Django开发一个网站,作为网络爬虫的远程管理器。更具体地说,我用Scrapy创建了一个蜘蛛,可以从另一个网站下载一些PDF文件。 我的目标是找到一种通过POST(我猜)请求调用爬行器的方法,并让爬虫在我的Django视图中运行。下载的文件将存储到运行网站的服务器,而不是运行spider的任何人的个人计算机。 因此,当我登录我的网站并按下Crawl按钮时,新文件将下载到服务器的文件库中 我是Django和Scrapy的新手,所以我不知道如何让他们一起工作来

因此,我正在从事以下项目:
我正在使用
Django
开发一个网站,作为网络爬虫的远程管理器。更具体地说,我用
Scrapy
创建了一个蜘蛛,可以从另一个网站下载一些PDF文件。
我的目标是找到一种通过
POST
(我猜)请求调用爬行器的方法,并让爬虫在我的
Django
视图中运行。下载的文件将存储到运行网站的服务器,而不是运行spider的任何人的个人计算机。
因此,当我登录我的网站并按下
Crawl
按钮时,新文件将下载到服务器的文件库中

我是Django和Scrapy的新手,所以我不知道如何让他们一起工作来实现我的目标,有人能给我指引方向吗?
我看到了一些关于通过其他
Python
脚本运行
Scrapy
脚本的问题,但我不知道如何连接它们,如何放置
Scrapy
项目文件等


谢谢你抽出时间,我希望我没有把你弄糊涂

我不建议在django视图中启动一个新进程,在这种情况下,我将使用像redis queue这样的作业队列,您可以使用
django rq
轻松配置。

然后,您可以让爬行器排队,并在工作线程中运行

import django_rq

from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
from my_project.spider import MySpider

def run_spider():
    process = CrawlerProcess(get_project_settings())
    process.crawl(MySpider)
    process.start()

django_rq.enqueue(run_spider)

类似帖子:老实说,我查看过那篇帖子,不明白
Scrapyd
是如何工作的,所以我想问问是否有人有类似情况的经验来指导我!我再查一遍,谢谢!每个人都有同样的想法,Scrapyd最终对我来说就像一个魔咒。我有一些困难,但我很乐意帮助任何有同样问题的人!