กรอกแบบฟอร์ม HTML จากเซิร์ฟเวอร์ Node.js

ฉันต้องการกรอกข้อมูลในช่องป้อนข้อมูลของแบบฟอร์ม HTML ส่งและดึงข้อมูลเนื้อหาของหน้า ฉันพบโมดูลชื่อ form-scraper แต่โค้ดของฉันแสดงข้อผิดพลาดนี้:

ไม่สามารถอ่านคุณสมบัติ 'get' ของไม่ได้กำหนดที่ Function.get (/Users/.../node_modules/promisified-request/promisified-request.js:21:69)

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": "[email protected]"};

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

ความช่วยเหลือหรือข้อเสนอแนะเกี่ยวกับวิธีการดำเนินการนี้ได้รับการชื่นชมอย่างแตกต่าง!


person Gogo    schedule 29.04.2018    source แหล่งที่มา


คำตอบ (1)


ฉันรู้ว่าโค้ดที่คุณให้มาเหมือนกับตัวอย่างที่นี่ แต่ตัวอย่างไม่ถูกต้องเล็กน้อย คุณจะต้องส่ง 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": "[email protected]"};

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

และคุณไม่จำเป็นต้องติดตั้งแพ็คเกจ "request" เนื่องจากเป็นแพ็คเกจที่ต้องพึ่งพาอยู่แล้วดังนั้นจึงได้รับการติดตั้งแล้ว

person Devansh J    schedule 29.04.2018