夜!Zombie.js で Web サイトにログインしようとしていますが、うまく動作しないようです。ああ、ウェブサイトはフィンランド語ですが、理解するのは難しくありません.2つのテキストフィールドと1つのボタンです. 1 つ目はユーザー名、2 つ目はパスワード、ボタンはログイン ボタンです。
現時点で、私のログインコードは次のとおりです。
var Browser = require("zombie");
browser = new Browser();
browser.visit("https://www.nordnet.fi/mux/login/startFI.html?cmpi=start-loggain",
function () {
// Here I check the title of the page I'm on.
console.log(browser.text("title"));
// Here I fill the needed information.
browser.document.getElementById("input1").value ="MYUSERNAME";
browser.document.getElementById("pContent").value ="MYPASSWORD";
// And here it fails. I try to submit the form in question.
browser.document.getElementById("loginForm").submit();
setTimeout(function () {
// This is here to check that we've submitted the info and have been
// redirected to a new website.
console.log(browser.text("title"));
}, 2000);
});
ゾンビ独自の「塗りつぶし」メソッドを使用する必要があったかもしれないことはわかっていますが、運がなかったので、新しいことを試しました。
これから得られるのはエラーだけです:
Y:\IMC\Development\Web\node_modules\zombie\lib\zombie\forms.js:72
return history._submit(_this.getAttribute("action"), _this.getAttribute(
^
TypeError: Cannot call method '_submit' of undefined
明らかにフォームが見つかったとログに記録するbrowser.document.getElementById("loginForm")
と、残念ながら、何らかの理由でそれが気に入りません。
また、ウェブページのログインボタンを使用して押すという「従来の」方法をゾンビで試しました。問題は、実際にはボタンではなく、リンクが添付された単なる画像であり、すべて内部にあること<span>
です。そして、そのボタンを「クリック」する方法がわかりません。
ID がないので使用できず、テキストを使用しようとしましたが、ウムラウトがあるため機能しません。/344 で ä をエスケープすると、エラーが発生するだけでした:
throw new Error("No BUTTON '" + selector + "'");
^
Error: No BUTTON 'Kirjaudu sisään'
ええ、それはうまくいきませんでしたが、エスケープされたウムラウトを正しく認識しない理由はわかりません。
これは私の最初の質問であり、2 番目の質問は些細なことですが、このテキストを書いたので、ここでも質問してみませんか。
これがすべて機能するようになったら、このログインで得られる Cookie を何らかの方法でコピーし、それを YQL で使用して画面をスクレイピングすることはできますか? 基本的に私は株式市場の価値をかき集めようとしていますが、ログがなければ値は 15 分延期されます。これはそれほど悪くはありませんが、とにかくライブにしたいと思います。