问题标签 [scrapyd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
261 浏览

python-2.7 - 检查 500 错误以绕过

我使用 Scrapy 框架来抓取数据。如果遇到 500 错误,我的爬虫将被中断。所以我需要在解析网页内容之前检查一个可用的链接。
有什么方法可以解决我的问题吗?
非常感谢。

0 投票
1 回答
898 浏览

database-connection - scrapyd 连接到自己的数据库(mysql.db)而不是 127.0.01:3306

我有一个scrapy项目,它的蜘蛛如下图所示。当我用这个命令运行这个蜘蛛时,蜘蛛会工作:scrapy crawl myspider

在我使用“scrapy deploy -p mysqlproject”将该项目部署到scrapyd之后,然后使用"curl http://localhost:6800/schedule.json -d project=mysql -d spider=myspider"

问题是 start_urls 没有从数据库中填充。相反,sql 命令返回一个空数组。因为(我猜)它连接到由 dbs_dir 配置的自己的 mysql.db,如下所示:http: //doc.scrapy.org/en/0.14/topics/scrapyd.html#dbs-dir

如何在 scrapyd 和 mysql 服务器而不是 mysql.db 之间建立连接?

0 投票
4 回答
7124 浏览

python - 如何以编程方式设置和启动 Scrapy 蜘蛛(网址和设置)

我已经使用scrapy编写了一个工作爬虫,
现在我想通过一个Django webapp来控制它,也就是说:

  • 设置 1 个或多个start_urls
  • 设置 1 个或多个allowed_domains
  • 设定settings
  • 启动蜘蛛
  • 停止/暂停/恢复蜘蛛
  • 在运行时检索一些统计信息
  • 蜘蛛完成后检索一些统计信息。

一开始我以为scrapyd就是为此而生的,但是在阅读了文档之后,它似乎更像是一个能够管理“打包蜘蛛”的守护进程,也就是“scrapy Eggs”;并且所有设置(start_urls, allowed_domains, settings)仍然必须在“scrapy egg”本身中进行硬编码;所以它看起来不像是我的问题的解决方案,除非我错过了什么。

我也看了这个问题:How to give URL to scrapy for crawling? ; 但是提供多个 url 的最佳答案被作者 himeslf 限定为“丑陋的 hack”,涉及一些 python 子进程和复杂的 shell 处理,所以我认为在这里找不到解决方案。此外,它可能适用于start_urls,但似乎不允许allowed_domainssettings

然后我看了一下scrapy webservices:这似乎是检索统计数据的好方法。但是,它仍然需要一个正在运行的蜘蛛,并且没有任何改变的线索settings

关于这个主题有几个问题,似乎没有一个令人满意:

我知道scrapy用于生产环境;并且像scrapyd这样的工具表明确实有一些方法可以处理这些要求(我无法想象scrapyd正在处理的scrapy鸡蛋是手工生成的!)

非常感谢你的帮助。

0 投票
2 回答
962 浏览

python - Scrapyd:如何指定已部署项目可以使用的库和公共文件夹?

Scrapyd 是我们可以部署项目的服务。但是我面临一个问题。我有一个名为 MyScrapers 的项目,其蜘蛛类使用如下导入语句:

from mylibs.common.my_base_spider import MyBaseSpider

my_base_spider 的路径是/home/myprojectset/mylibs/common/my_base_spider

在设置环境变量PYTHONPATH=$HOME/myprojectset/时,我可以使用 scrapy 命令运行 MyScrapers:scrapy crawl MyScrapers。

但是当我使用 scrapyd 通过以下命令部署 MyScrapers 时:scrapy deploy scrapyd2 -p MyScrapers,我收到以下错误:

服务器响应 (200): {"status": "error", "message": "ImportError: No module named mylibs.common.my_base_spider"}

请告诉如何使部署的项目使用这些库?

0 投票
2 回答
1349 浏览

python - How to run multiple scrapyd servers?

I have been searching for documentation on the Scrapyd Service but it is very slim. I was wondering if anyone has any idea how to set up multiple Scrapyd servers that point to the same schedule queue?

0 投票
0 回答
657 浏览

python - 使用 os.system 或 subprocess.call 运行 scrapy 命令

我有一个 Scrapy 项目,它在 Apache (XAMPP) 上运行基于 Web 的界面,允许用户创建、修改和调度蜘蛛,还包括在 6800 端口调用 scrapyd 以获取挂起/运行/完成的蜘蛛。除了一个例外,这一切都很好......如果scrapyd没有运行,我显然无法安排蜘蛛或从scrapyd获取待处理/正在运行/已完成的蜘蛛。

我目前有一个呼叫http://localhost:6800,如果失败,我会显示一条消息,说明服务器当前未运行,并且我有一个启动服务器的链接。单击该链接时,它会调用一个 Python 页面,该页面会调用 os.system 来启动服务器。我对 Python 还很陌生,并且仍在尝试掌握操作系统功能,并且我尝试了几种不同的方法,这些方法是我在 Stack Overflow 上找到的(例如 subprocess.call 和 os.popen/popen2/ popen3) 但它们似乎都不起作用。

我知道使用scrapy server你需要在scrapy项目目录中启动scrapyd所以我也尝试使用它来调用它twistd -ny extras/scrapyd.tac

对我来说,运行scrapy 命令或通过Python 调用twistd 的最佳方式是什么?

0 投票
1 回答
2568 浏览

python - 部署scrapy项目

我正在尝试使用scrapyd 部署scrapy 项目。我可以通过使用正常运行我的项目

这是我一步一步做的:

1/ 我跑

2/安装scrapyd

3/ 我在 /var/www/api/scrapy/dirbot (http://domain.com/api/scrapy/dirbot) 有项目 scrapy。我编辑scrapy.cfg

4/ 我用部署命令测试

5/ 但是当我使用命令时

* 我不明白什么是蟒蛇蛋。你能给我举个例子吗?我不知道我有没有。也许那个文件是/var/www/api/scrapy/dirbot/setup.py?

* 如何部署我的项目。我不知道我到底做错了什么,或者错过了一步?

谢谢

0 投票
3 回答
2436 浏览

python - Scrapyd 部署“属性错误:NoneType 对象没有属性‘module_name’”

我正在尝试使用scrapy将我的爬虫项目部署到scrapyd实例,但调用command会返回以下错误:

服务器响应 (200): {"status": "error", "message": "AttributeError: 'NoneType' object has no attribute 'module_name'"}

这是我的 setup.py,用于构建在部署期间提交的 python egg:

我的scrapy.cfg:

我觉得这与鸡蛋的建造方式有关,但我不确定。我知道当您访问应该是对象的属性但无论出于何种原因实际上为空时,python 会引发这样的错误。我也没有任何“module_name”属性或任何试图在我自己的代码中引用它的东西。在本地从 scrapy 运行爬虫就可以了,但部署 egg 却不行。

0 投票
2 回答
3144 浏览

sql-server - Scrapy / Python 和 SQL Server

是否可以使用 Scrapy 从网站上抓取数据,并将该数据保存在 Microsoft SQL Server 数据库中?

如果是,有没有这样做的例子?它主要是Python问题吗?即,如果我发现一些 Python 代码保存到 SQL Server 数据库中,那么 Scrapy 可以做同样的事情吗?

0 投票
1 回答
4096 浏览

scrapy - 在 scrapyd 中启用 HttpProxyMiddleware

在阅读了scrapy文档后,我认为HttpProxyMiddleware默认是启用的。但是当我通过scrapyd的webservice接口启动一个spider时,HttpProxyMiddleware没有启用。我收到以下输出:

请注意,未启用 HttpProxyMiddleware。如何为scrapyd启用它?任何帮助将不胜感激。

我的scrapy.cfg

我有以下 settings.py

问候,

攀树