node.js - 网页抓取和网页导航模拟

标签 node.js web-scraping cheerio

我正在制作一个网络爬虫,我已经知道如何使用我制作的代码来废弃一些数据并将它们转换为 Json :

var express = require('express');
var fs = require('fs');
var request = require('request');
var cheerio = require('cheerio');
var app     = express();
var url = 'http://www.footmercato.net/';

request(url, function(err, resp, body) {
     if (!err) {
       var $ = cheerio.load(body);
       var data = [];
       var i = 1;
       $('.text').each(function(i, element) {
         var article = $('p');
         var jsObject = { title : "", article : "", date : "" };
         var articleTxt = article.text();
         jsObject.article = articleTxt;
         data.push(jsObject);
       })
       var json = JSON.stringify(data);
       fs.writeFile('output.json', JSON.stringify(json, null, 4), function(err) {
           console.log('File successfully written!');
       })
   }
 });

  app.listen('8080');

但我想导航到我正在抓取的网站,填写表单并转到其他页面。

有人知道我是否可以使用cheerio 来做到这一点,或者我如何将它添加到我现有的代码中?

谢谢

最佳答案

您可以使用webdriverio实际上他会打开一个浏览器窗口,然后你可以通过webdriverio api来操作dom。处理表单鼠标单击,并从一个页面导航到另一页面。

var webdriverio = require('webdriverio');
var options = {
    desiredCapabilities: {
        browserName: 'firefox'
    }
};
webdriverio
    .remote(options)
    .init()
    .url('http://www.google.com')
    .getTitle().then(function(title) {
        console.log('Title was: ' + title);
    })
    .end();

关于node.js - 网页抓取和网页导航模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41592351/

相关文章:

python - Selenium - 我对服务器的访问量有多大?

javascript - 使用cheerio获取html

javascript - 如何使用每个或循环解析内部多个 <p> 标签文本?

javascript - 通过文本选择与cheerio(jquery)选项

javascript - Firebase 3 - 无法从数据库检索数据(Web)

javascript - 是否可以创建一个无需安装即可运行的 NPM 脚本?

python - 在目录中打开多个文件时出现 BeautifulSoup MemoryError

node.js - 如何从我的 Express API 中的 mysql blob 字段的缓冲区返回字符串?

javascript - 引用数组时避免使用魔数(Magic Number)

python - 如何使用 BeautifulSoup 抓取网页 url