晚上好!我正在尝试使用zombie.js登录一个网站,但似乎无法让它工作。这个网站是芬兰语的,但不是很难理解,有两个文本字段和一个按钮。第一个是用户名,第二个是密码,按钮是登录按钮。
目前我的登录代码如下:
现在,如果我记录下
我也尝试了使用zombie的“传统”方法,即使用网页上的登录按钮并按下它。问题在于,它实际上不是一个按钮,只是一个带有链接的图像,并且所有内容都在
它没有ID,所以我无法使用它,然后我尝试使用上面的文本,但由于它上面有umlauts,我无法让它起作用。用 /344 转义 ä 只会导致错误:
目前我的登录代码如下:
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);
});
现在我知道也许应该使用zombie自己的“fill”方法,但我尝试了没有成功,所以我尝试了一些新的方法。
但是所有我得到的结果都是一个错误:
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")
,它显然找到了表单,但不幸的是,由于某种原因,它不喜欢它。我也尝试了使用zombie的“传统”方法,即使用网页上的登录按钮并按下它。问题在于,它实际上不是一个按钮,只是一个带有链接的图像,并且所有内容都在
<span>
中。我不知道如何“点击”该按钮。它没有ID,所以我无法使用它,然后我尝试使用上面的文本,但由于它上面有umlauts,我无法让它起作用。用 /344 转义 ä 只会导致错误:
throw new Error("No BUTTON '" + selector + "'");
^
Error: No BUTTON 'Kirjaudu sisään'
所以,那没起作用,但我不知道为什么它无法正确识别转义的umlaut。
这是我的第一个问题,第二个问题很小,但既然我写了这个文本,为什么不在这里问呢。
如果我成功了,我能否复制此登录的cookie,并在我的YQL中使用它来进行屏幕抓取?基本上,我正在尝试抓取股市价值,但如果没有登录,这些价值将被延迟15分钟,这并不太糟糕,但我仍想让它实时。