问题标签 [scrapinghub]

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 回答
209 浏览

scrapy - 提取后如何转换值?

我正在使用 Portia 从页面中提取信息。但是,提取的值之一不是我可以使用的格式。

更具体地说,我想提取一个使用点而不是逗号来表示千位的数值,例如“1.000”而不是“1,000”。

是否可以提取然后使用 Portia 进行转换?我可以设置一个正则表达式来提取数字,但也可以替换它们吗?

我现在正在做的是将数据导出到 csv,然后用于sed替换有问题的数字。

谢谢

0 投票
1 回答
523 浏览

python - 连接被对方​​拒绝:111:连接被拒绝

我有一个LinkedIn的蜘蛛。它在我的本地机器上运行良好,但是当我在 Scrapinghub 上部署时出现错误:

Scrapinghub的完整日志为:

我怎样才能解决这个问题?

0 投票
1 回答
382 浏览

python-3.x - scrapinghub上传和使用文件

我在scrapyhub上传了我的蜘蛛。我了解如何使用我的 *.txt 文件上传,但如何使用它?

我的setup.py文件看起来像

然后我想使用这个Name.txt

在上传我的蜘蛛之前看起来像

所以我的问题是:如何在抓取集线器上使用我的文件?

我尝试了这段代码,但不明白它是如何工作的,以及如何将它与我的代码集成 =)

data = pkgutil.get_data("youtube_crawl", "resources/Names.txt")

该函数返回一个二进制字符串,它是指定资源的内容。

0 投票
1 回答
107 浏览

python - 为 SitemapSpider 和 CrawlSpider 中的每个请求添加元 deltafetch_key

我正在使用 scrapinghub 的 deltafetch 功能从网站获取新页面,而无需请求我已经抓取的网址。

我注意到在某些网站上,scrapy 仍然会使用已经访问过的 url 报废页面。我不得不只使用 url 替换默认的指纹 deltafetch_key。

它适用于 scrapy Spider,因为我可以在请求中定义元数据。但是,当使用CrawlSpiderand时SitemapSpider,我有点卡住了。例如,SitemapSpider, 有一个_parse_sitemap包含 的方法Requests,但我不能真正覆盖它。

我尝试使用自定义DOWNLOADER_MIDDLEWARES,通过使用process_request和添加request.meta['deltafetch_key'] = xxx. 但不知何故,在自定义下载器中间件之前调用了 deltafetch 蜘蛛中间件。

您有任何想法如何向of和中添加meta信息吗?RequestCrawlSpiderSitemapSpider

0 投票
0 回答
34 浏览

ruby - 从 Scrapinghub 检索所有项目作为哈希

我从 Scrapinghub 的一份工作中检索了所有项目:

问题是 items 是 String 而不是 Hash。有没有办法将其解析为 Hash 以便更轻松地检索单个项目,因为响应是 JSON。如果没有,我如何最好地解析字符串。谢谢

0 投票
0 回答
64 浏览

python - 如何在 ScrapingHub 上将 geckodriver“添加”到 PATH?

我正在使用 python2 进行网页抓取,我编写了一个蜘蛛,它使用无头 Firefox(无 GUI)访问网站,使用我的帐户登录,然后通过按下按钮、填写表格、日历等与网站进行交互。它在我的个人计算机上按预期工作,但是,一旦我将它部署到 Scrapinghub,我就会收到错误消息,指出geckodriver 需要在路径上。. 该目录已经在我的计算机上的 PATH 上,只是不在 Scrapinghub 上。

我尝试将 geckodriver 本身复制到项目内的文件夹中,将其子目录添加到webdriver的executable_path参数中,如本小指南所示,最后再次部署到 Scrapinghub,但我仍然遇到相同的错误。

我想知道如何将 geckodriver 添加到 Scrapinghub 上的“PATH”(如果可能)以及是否有其他方法可以实现这一点。我读过一些关于 Python 鸡蛋的东西,但我不确定这是否能帮助我解决这个问题。

我使用 Windows 10 和 python 2.7。

0 投票
1 回答
1545 浏览

python - Scrapinghub 在信号处理程序上遇到错误:

我有一个可以在本地运行的scrapy 脚本,但是当我将它部署到Scrapinghub 时,它会给出所有错误。调试后,错误来自 Yielding item。

这是我得到的错误。

它没有指定有问题的字段,但是通过消除过程,我意识到这是代码的这一部分:

我清理了一些部分以使其更容易解决,但基本上这部分是问题所在。它不喜欢项目媒体的东西。

我是 Python 和 Scrapy 的初学者。很抱歉,如果这被证明是愚蠢的基本 Python 错误。任何的想法?

编辑:所以从 ThunderMind 得到答案后,解决方案是简单地为 key 做 str(media_index)


是的,就在这里:

media_index 是可变的。并且 Keys 不能是可变的。阅读Python dict,了解应该使用什么作为键。

0 投票
2 回答
428 浏览

python - 无法部署到 ScrapingHub 不存在 SyntaxError:无效语法

如果我调用:scrapy crawl,我有一个运行完美的 Scrapy Spider。当我尝试将它部署到 ScrapingHub.com 时,它会引发我无法修复的 SyntaxError。我无法弄清楚发生了什么。我的代码中没有语法错误。

这是我的部署输出:

0 投票
1 回答
216 浏览

json - Scrapinghub 将我的结果插入日志而不是项目

我有一个正常运行的蜘蛛项目来提取 urls 内容(没有 css)。我抓取了几组数据并将它们存储在一系列 .csv 文件中。现在我尝试将其设置为在 Scrapinghub 上工作,以便进行长期抓取。到目前为止,我能够上传蜘蛛并在 Scrapinghub 上工作。我的问题是结果出现在“日志”中,而不是“项目”下。数据量超过了日志容量,因此给了我一个错误。如何设置我的管道/提取器工作并返回 js 或 csv 文件?我对将抓取的数据发送到数据库的解决方案感到满意。因为我也没有做到这一点。任何指导表示赞赏。

蜘蛛:

管道

设置

项目


Scrapinghub 日志显示:

0 投票
2 回答
303 浏览

web-scraping - Scrapy蜘蛛之间的分布式通信

我想以协调的方式运行两个蜘蛛。第一个蜘蛛将抓取一些网站并生成 URL,第二个蜘蛛将使用这些地址。我等不及第一个蜘蛛完成然后启动第二个,因为网站变化非常快,第一个蜘蛛生成的 URL 需要立即抓取。一个非常简单的架构如下所示。目前,我为每个抓取作业分别使用Scrapy 。知道我该怎么做吗?每个蜘蛛的行为方式不同(具有不同的设置)并执行不同的工作。将它们放在不同的机器上(分布式)会很好。

在此处输入图像描述