问题标签 [x-ray]

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 投票
2 回答
562 浏览

javascript - node.js超时未触发

我正在使用x-ray库来抓取特定网站的某些内容并将其保存在 JSON 文件中。

我想每小时获取一次状态,但 Node 不执行我的setTimeout.

这是我的代码:

它第一次记录没有任何问题,但在那之后,它什么也不做。似乎该record功能只执行一次。

pm2用来管理这个过程,pm2 list显示它的运行时间远远超过 60 分钟。即使 Node 无法在给定时间内准确地执行回调,该进程仍处于活动状态(最长,在我重新启动它之前)大约 80 分钟。

日志中没有错误,在我的测试过程中也没有意外重启。

也许这与我正在使用的库有关?我不知道是什么原因造成的。

0 投票
2 回答
1064 浏览

javascript - NodeJS x-ray web-scraper:循环回调中的多个 url

我正在使用 X 射线,这很棒,但缺乏教程。无论如何,我使用一个名为 urls 的 url 数组。在循环中,每个 url 通过回调获取并返回结果。在回调函数中,我需要知道解析的 url 是什么。如果回调只返回 err 和结果,我怎么知道返回的是哪个 url?(这真的是一个 X 射线问题还是 js)

} }

0 投票
1 回答
295 浏览

javascript - 如何用 X 射线获得数组的第二项

我想得到game: ['.contenedor-numero'],数组中的第二项:

html代码结构是这样的:

我想抓取值为 38 的<td>元素。但是当我什么都不用时给我!class="contenedor-numero "['.contenedor-numero'][1]

如何获得该数组的第二个元素?

0 投票
1 回答
1608 浏览

node.js - 用 X 射线刮网

我正在使用 X 射线从网站中提取一些数据,但是当我使用内置功能爬到另一个页面时,它根本不起作用。

UnitPrice是我要提取的参数,但我总是得到“未定义”。

如您所见,我正在传递先前在 url 属性上提取的 href 值。

0 投票
0 回答
41 浏览

javascript - 公共 IP 上的响应长度与本地 IP 不同

我使用X 射线刮刀将 JSON 流式传输到浏览器:

我用下面的 ajax onprogress 事件抓住了它:

这里的一切都在本地主机上运行良好,但是当我通过公共 IP 运行它时,响应会被随机剪切,并且看起来像这样(换句话说,我无法正确处理响应,因为 json 被剪切了):

0 投票
1 回答
1004 浏览

java - 如何使用命令提示符将黄瓜功能文件动态传递给 maven 项目?

我用硒和黄瓜创建了 maven 项目。我正在尝试在持续集成设置中使用 jira X-ray。基本上,我采用导出的功能文件并希望使用竹子在命令行上执行它们。

我认为我的主要问题是我不确定如何将功能文件提供给具有步骤定义的已编译 maven 项目。

0 投票
1 回答
314 浏览

node.js - 使用 X 射线在结束错误后写入

我在 MEAN.js 项目中使用 x 射线库,但无法修复此错误消息:

错误:结束后写入 在 writeAfterEnd (_stream_writable.js:166:12) 在 Writable.write (_stream_writable.js:211:5) 在 Writable.end (_stream_writable.js:446:10) 在 _stream_object (C:\src\je\foodleWeb\node_modules \x-ray\lib\stream.js:46:16) 在下一个 (C:\src\je\foodleWeb\node_modules\x-ray\index.js:137:11) 在 C:\src\je\foodleWeb \node_modules\x-ray\index.js:242:7 at C:\src\je\foodleWeb\node_modules\x-ray\lib\walk.js:56:12 at callback (C:\src\je\foodleWeb \node_modules\batch\index.js:147:12) 在 C:\src\je\foodleWeb\node_modules\x-ray\lib\walk.js:49:9 在 C:\src\je\foodleWeb\node_modules\ x-ray\index.js:232:24 在下一个 (C:\src\je\foodleWeb\node_modules\x-ray\index.js:138:11) 在 C:\src\je\foodleWeb\node_modules\x -ray\index.js:242:7 在 C:\src\je\foodleWeb\node_modules\x-ray\lib\walk.js:56:12 在回调 (C:\src\je\foodleWeb\node_modules\batch\index.js:147:12) 在 C:\src\je\foodleWeb\node_modules\x-ray\lib\walk.js:39:11在 C:\src\je\foodleWeb\node_modules\x-ray\lib\walk.js:56:12 在回调 (C:\src\je\foodleWeb\node_modules\batch\index.js:147:12) 在C:\src\je\foodleWeb\node_modules\x-ray\lib\walk.js:49:9 在 C:\src\je\foodleWeb\node_modules\x-ray\index.js:212:18 在下一个( C:\src\je\foodleWeb\node_modules\x-ray\index.js:138:11) 在 C:\src\je\foodleWeb\node_modules\x-ray\index.js:242:7 在 C:\ src\je\foodleWeb\node_modules\x-ray\lib\walk.js:56:12\src\je\foodleWeb\node_modules\batch\index.js:147:12) 在 C:\src\je\foodleWeb\node_modules\x-ray\lib\walk.js:49:9 在 C:\src\ je\foodleWeb\node_modules\x-ray\index.js:212:18 在下一个 (C:\src\je\foodleWeb\node_modules\x-ray\index.js:138:11) 在 C:\src\je \foodleWeb\node_modules\x-ray\index.js:242:7 在 C:\src\je\foodleWeb\node_modules\x-ray\lib\walk.js:56:12\src\je\foodleWeb\node_modules\batch\index.js:147:12) 在 C:\src\je\foodleWeb\node_modules\x-ray\lib\walk.js:49:9 在 C:\src\ je\foodleWeb\node_modules\x-ray\index.js:212:18 在下一个 (C:\src\je\foodleWeb\node_modules\x-ray\index.js:138:11) 在 C:\src\je \foodleWeb\node_modules\x-ray\index.js:242:7 在 C:\src\je\foodleWeb\node_modules\x-ray\lib\walk.js:56:12

这是我的代码,我使用内置函数“管道”将响应传递回 $http

我尝试使用以下方法来捕获异常,但它不能正常工作,因为它是基于 Promise 的。我想要类似的东西以防止应用程序崩溃。

也许我可以将我的代码包装成一个函数并传入一个回调或类似的东西......

0 投票
1 回答
503 浏览

javascript - NodeJS Xray 无法爬取到多个站点来抓取数据

因此,我需要将房地产广告抓取到 nidax.json 文件中。我转到所有广告页面,并使用指向各个广告的链接来获取我需要的数据。我正在使用 NodeJS Xray 刮刀,但由于某种原因它不起作用。

有时它什么也不返回,有时它只返回单个广告的链接。

0 投票
2 回答
360 浏览

javascript - 两个具有相同类名的 div,我怎样才能只抓取第一个类实例?

查询现在返回两倍相同的值,因为有两个 div 匹配查询。

两个 div 具有相同的选择器路径

它们都嵌套在这个 id 中:#smcc_comp_common_wrapper

结构是这样的:

我正在尝试类似的东西:

或者也

x(url, ':nth-match(1 of #mainwrapper) .listing_risultati_prodotti .smcc-listing-risultati-prodotto',但没有人工作

是否可能仅针对第一类实例?

0 投票
1 回答
57 浏览

node.js - 如何为 X 射线 npm 网络抓取指定语言?

问题的主题

例如,我想从游戏市场上刮一本书页。Google 市场提供多种语言版本,没有特定于 url 的标记。那么,我怎样才能用我需要的语言而不是随机的语言来抓取特定版本?

环境

“X射线”:“^2.2.0”
节点--版本:5.9.0 npm--
版本:3.7.3

重现步骤

尝试从游戏市场中抓取任何页面。例如: https ://play.google.com/store/books/details/Walter_Isaacson_Steve_Jobs?id=I6R8MXStPXgC

预期行为

页面被特定语言抓取

实际行为

它抓取随机语言(瑞典语、西班牙语、葡萄牙语——所有这一切都是在我从同一个 VPS 运行 X 射线时)