【问题标题】:Filling HTML form from Node.js server从 Node.js 服务器填写 HTML 表单
【发布时间】:2018-04-29 16:17:16
【问题描述】:

我想填写 HTML 表单的输入字段,提交和检索页面正文。我找到了一个名为 form-scraper 的模块,但我的代码给了我这个错误:

无法读取 Function.get (/Users/.../node_modules/promisified-request/promisified-request.js:21:69) 处未定义的属性“get”

var pRequest = require("promisified-request").create();
var fScraper = require("form-scraper");

var formStructure = fScraper.fetchForm("#mc-embedded-subscribe-form", "http://cats.com/", pRequest);

var loginDetails = {"EMAIL": "test@test.test"};

fScraper.submitForm(loginDetails, fScraper.provideForm(formStructure), pRequest).then(function(response) {
    console.log(response.body);
});

任何关于如何去做的帮助或建议不胜感激!

【问题讨论】:

    标签: javascript node.js web-scraping


    【解决方案1】:

    我知道您提供的代码与示例here 相同。但是这个例子有点不正确。您必须将 request 传递给 create 方法。

    试试这个:

    var request = require("request")
    var pRequest = require("promisified-request").create(request);
    var fScraper = require("form-scraper");
    
    var formStructure = fScraper.fetchForm("#mc-embedded-subscribe-form", "http://cats.com/", pRequest);
    
    var loginDetails = {"EMAIL": "test@test.test"};
    
    fScraper.submitForm(loginDetails, fScraper.provideForm(formStructure), pRequest).then(function(response) {
        console.log(response.body);
    });
    

    你不需要安装 "request" 包,因为它已经是一个依赖项,因此已经安装了

    【讨论】:

      猜你喜欢
      • 2013-10-17
      • 2014-12-13
      • 1970-01-01
      • 2019-02-19
      • 1970-01-01
      • 1970-01-01
      • 2019-05-06
      • 1970-01-01
      • 2012-05-29
      相关资源
      最近更新 更多