晚上!我正在尝试使用zombie.js 登录一个网站,但我似乎无法让它工作。哦,网站是芬兰语的,但不是很难理解,有两个文本字段和一个按钮。第一个是用户名,第二个是密码,按钮是登录按钮。
目前我的登录代码如下:
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'
所以,是的,这没有用,虽然我不知道为什么它不能正确识别转义的变音符号。
这是我的第一个问题,第二个是次要问题,但是既然我已经写了这篇文章,为什么不在这里问呢。
如果我让所有这些工作,我可以以某种方式复制此登录给我的 cookie,并在我的 YQL 中使用它来进行屏幕抓取吗?基本上我正在尝试抓取股票市场价值,但如果没有登录,价值会延迟 15 分钟,这还不错,但我希望它无论如何都可以上线。