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最终对我来说就像一个魔咒。我有一些困难,但我很乐意帮助任何有同样问题的人!