Tag: web scraping

通过木偶机循环表行

我想从表中的每一行获取链接。 这就是我得到第三(例如): await page.evaluate(() => document.querySelector(#content-tabs-0 > div > table > tbody > tr:nth-child(3) > td.mpt-1-td-desc > a").href) 我想遍历表行,我使用这样的代码: for(let i=1;i<=10;i++){ let link = await page.evaluate(() => document.querySelector("#content-tabs-0 > div > table > tbody > tr:nth-child("+i+") > td.mpt-1-td-desc > a").href); console.log(link); } 当我执行代码时,我得到这样的错误: (node:16928) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Evaluation failed: ReferenceError: […]

从没有API的网站获取数据/创build一个API

我需要从网站获取一些数据(用户将改变)。 然而,“守望先锋”(Overwatch Stats)没有“好”的API。 是否有可能在JavaScript(使用Node.js)通过HTML标签或sorting获取这些数据? 例如,这是源代码中的一行: <span class="summary-hero-name">McCree</span> 而且页面上显示的3个英雄每个都有class级summary-hero-name ,有什么办法可以参考这个数据吗?

如何暂停NodeJS脚本?

我使用Node.js在Javascript中创build了一个脚本,以便在一夜之间从网站上刮取一些数据。 我们会,我在67%,这将需要约5-6个小时才能完成。 但是我现在有足够的数据来阻止它。 有没有办法将脚本执行暂停到Node REPL会话并检查variables? 或者类似的东西? (我正在把数据拼成一个数组)。 谢谢

NodeJS:可读对象stream,用于asynchronous生成数据的模式

我想用NodeJS通过SSH在服务器群集中抓取数据。 远程脚本输出JSON,然后parsing并分解成对象stream 。 我现在的问题是,我使用的面向callback的库(SSH2,MySQL)导致了一种callback模式,我发现很难与可读API规范相匹配。 如何实现_read(size)当推的数据是一堆callback后面? 我目前的实现利用了Streams也是EventEmitters的事实。 我开始构buildStream实例时填充我的数据。 当我所有的callback完成后,我发出一个事件。 然后我听取自定义事件,然后才开始向下推送数据。 // Calling code var stream = new CrawlerStream(argsForTheStream); stream.on('queue_completed', function() { stream .pipe(logger) .pipe(dbWriter) .on('end', function() { // Close db connection etc… }); }); 一个CrawlerStream的模拟将是 // Mock of the Readable stream implementation function CrawlerStream(args) { // boilerplate // array holding the data to push this.data = […]

如何asynchronous/等待在我的代码不起作用?

这个asynchronous/等待如何不起作用? 我已经花了整整一天尝试不同的组合,看video和阅读asynchronous/等待,find为什么这不起作用,然后张贴在这里。 我试图做第二个nodejs应用程序将运行在不同的端口,我的主应用程序将调用这个,所以它废弃一些数据,并将其保存到数据库caching。 它应该做什么:取一个关键字并将其发送给一个叫做scrapSearch的方法,这个方法创build一个完整的URI链接,并将其发送给实际获取该网页的方法,并将其返回给第一个调用者。 发生了什么:在返回结果之前触发初始调用下方的console.log。 控制台输出 Requesting : https://www.google.ca/?q=mykeyword TypeError: Cannot read property 'substr' of undefined at /DarkHawk/srv/NodesProjects/_scraper/node_scrapper.js:34:18 at <anonymous> app.js : 'use strict'; var koa = require('koa'); var fs = require('fs'); var app = new koa(); var Router = require('koa-router'); var router = new Router(); app .use(router.routes()) .use(router.allowedMethods()); app.listen(3002, 'localhost'); router.get('/scraptest', async function(ctx, next) […]

我如何使用node.js来刮取需要validation的网站?

我遇到过很多教程,解释如何使用node.js来刮取不需要authentication/login的公共网站 。 有人可以解释如何刮掉需要使用node.jslogin的网站吗?