问题标签 [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 回答
5858 浏览

javascript - NodeJS x-ray web-scraper:如何跟踪链接并从子页面获取内容

所以我正在尝试使用 node.js x 射线抓取框架来抓取一些内容。虽然我可以从单个页面获取内容,但我不知道如何跟踪链接并一次性从子页面获取内容。

x-ray github profile 上有一个示例,但如果我将代码更改为其他站点,它会返回空数据。

我已经简化了我的代码,并让它爬取了这个示例的 SO 问题。

以下工作正常:

这也有效:

但这给了我空的细节结果,我不知道出了什么问题:

我希望我的蜘蛛抓取包含列出问题的页面,然后点击每个问题的链接并检索其他信息。

0 投票
1 回答
647 浏览

javascript - x-ray-phantom 身份验证,无法有效登录

我真的找不到任何使用 x-ray 和 .driver(phantom()) 进行身份验证的示例。我浏览了 x-ray 和 x-ray-phantom 的文档,但找不到任何帮助。

0 投票
1 回答
471 浏览

javascript - X-Ray 抓取并在服务器浏览器中呈现 json

我正在使用X 射线来抓取网站,但我似乎无法在浏览器中显示正确的 JSON 输出。它工作正常,当我编写一个新的 json 文档时,就像write('result.json')现在当我尝试将它发送到浏览器时一样。我目前正在使用 express 作为 Web 框架。

下面将创建一个新的 result.json 文件并显示正确的 json 输出(dribbble.com 上的 url)。但是没有按照我的意愿在浏览器中显示它?

我试过的

奇怪的错误输出

0 投票
1 回答
2066 浏览

javascript - RxJS 中的 Rx.Observable.ForkJoin 和并行异步(使用 X-Ray)

我试图弄清楚如何基于使用lapwinglabs/x-ray webscraper 来自网站的解析数据流并行运行(在本例中为 10)异步函数。

最后一个console.log上的下一个永远不会被调用?!?

0 投票
1 回答
855 浏览

node.js - 如何修复 X ​​射线(NodeJS 抓取库)响应中的编码?

以下脚本在我的 NodeJS 服务器中运行良好,但当我尝试抓取一些西里尔文网站时,它很少返回这样的响应。

脚本

编码不正确的响应示例

我该如何解决?

0 投票
2 回答
2802 浏览

javascript - Node.js 强制等待函数完成

我在使用 Node.js 运行的程序中有一个 for 循环。该函数是xray包中的 x() ,我使用它从网页抓取和接收数据,然后将该数据写入文件。该程序在用于刮〜100页时成功,但我需要刮〜10000页。当我尝试抓取大量页面时,会创建文件但它们不包含任何数据。我相信这个问题的存在是因为 for 循环在继续下一次迭代之前没有等待 x() 返回数据。

有没有办法让节点在继续下一次迭代之前等待 x() 函数完成?

注意:我正在抓取的某些页面不返回任何值

0 投票
2 回答
714 浏览

scrape - X Ray Scraper: Manipulate data before .write

I'm fiddling around with some scraping, and need to manipulate some of the data before writing it to my json file.

When saved, price looks like this: "price": "\r\n\t\t\t\t\t\t\t\t13,99€\t\t\t\t\t\t\t".

I guess its because theres a lot of spaces in div.col.search_price.responsive_secondrow.

So my question is: Would it be possible to manipulate the data before .write?

0 投票
1 回答
2763 浏览

node.js - 节点渗透、X 射线和 Chrome 控制台之间的网络抓取结果不一致

最近我发现node-osmosis这是一个相对较新的模块,但具有强大的功能,例如同时接受 CSS 和 XPath 选择器、快速抓取和漂亮的语法。

所以我通过使用 CSS 和 XPath 运行一些刮擦,在节点渗透和 X 射线之间进行了比较。我遇到了如下两个问题。

问题1:节点渗透的未知结果

node-osmosis在其主页中提供了一个简单的示例,内容如下

如果我只想获取location信息,我将更改为

但是我得到的是

事实证明,osmosis 找到了 714 个条目h1+div a,但我不知道undefined这里有什么。

问题2:node-osmosis、x-ray和Chrome控制台结果不一致

我想检索 RobotShop 的产品信息。我决定使用 XPath 选择器

但这就是我得到的。我什么都得不到。

我认为我的 XPath 是有效的,因为我在 Chrome 的控制台中对其进行了测试

并得到我想要的产品描述。我还尝试$('.wrap-thumbnailCatTop')在控制台中使用 CSS 选择器,但无法检索任何内容。.wrap-thumbnailCatTop最终,我使用基于 Cheerio 构建的x-ray尝试了这个 CSS 选择器,并得到了不错的结果!代码是:

而且results.json

所以毕竟我有一种感觉,在解析选择器时可能有不同的标准或不同的实现。谁能告诉我这样做的正确方法?

0 投票
0 回答
314 浏览

node.js - x 射线刮刀爬到另一个页面不返回数据

您好正在测试新的 x 射线网络抓取,按照列出的爬取到另一个网站的教程,不返回任何东西 github x 射线

不起作用,除了这是我的代码,对于相同的逻辑

0 投票
1 回答
641 浏览

node.js - 使用 x-ray 和 x-ray-phantom 抓取动态页面内容时出现致命错误

当我在节点上运行 app.js 时,我在命令行中收到此错误:

这是 app.js 的样子:

我的 package.json

我的node版本是v5.3.0,npm版本是3.3.12,Phantomjs版本是1.9.8。我在 Mac El Capitan 10.11.1