我尝试登录一些网站,但似乎他们不使用表单来显示登录对话框。所以当使用 FormRequest 时,我收到错误
\n\nraise ValueError("No <form> element found in %s" % response)\nRun Code Online (Sandbox Code Playgroud)\n\n那么在这种情况下我该如何使用 scrapy 登录呢?
\n\n我尝试在这个网站中找到一个表单元素(使用 chrome devtool 和 xpath //form ),但结果为零
\n\n它的登录元素是
\n\n<div class="loginModalBody">\n <div class="coverLoginModal">\n <p class="loginModalTitle">Login </p>\n\n <div class=""><p class="login-msg"></p></div>\n\n <!-- Email -->\n <div class="loginCoverInputText">\n <input class="loginInputText" id="email-login" role="presentation" autocomplete="off" type="email" name="loginEmail" placeholder="E-mail">\n <span class="loginNameInputText">E-mail</span>\n <span class="loginLineInputText"></span>\n <!-- Error email -->\n <div class="dontEnterEmail loginErrorInput"><p class="loginError">Vui l\xc3\xb2ng nh\xe1\xba\xadp email<span class="loginIconError"></span></p></div>\n <div class="loginEmailInvalid loginErrorInput"><p class="loginError">Invalid email<span class="loginIconError"></span></p></div>\n </div>\n\n <!-- Password -->\n <div class="loginCoverInputText">\n <input class="loginInputText" id="password-login" autocomplete="new-password" type="password" name="loginPassword" placeholder="Password">\n <span class="loginNameInputText">Password</span>\n <span class="loginLineInputText"></span>\n <!-- Error password -->\n <div class="dontEnterPassword loginErrorInput"><p class="loginError">Enter password<span class="loginIconError"></span></p></div>\n </div>\n\n\n <!-- Remember password -->\n <label class="loginRememberPassword" id="login-remember-pass" for="loginRememberPassword"><input id="loginRememberPassword" type="checkbox" name="loginRememberPassword"><span></span>Ghi nh\xe1\xbb\x9b m\xe1\xba\xadt kh\xe1\xba\xa9u</label>\n <p class="loginForgotPassword forgot-password"> <a href="javascript:void(0)" data-dismiss="modal"><span></span>forgot pass</a></p>\n\n <button class="loginButtonSubmit btn-login" id="btn-login-system" type="button">Login</button>\n\n\n <p class="loginDontAccount">Do not have account? <a class="not-account" href="javascript:void(0)" data-dismiss="modal" data-toggle="modal" data-target="#modal-signup-system">Register!</a></p>\n <p class="loginOr">Or</p>\n\n <button type="button" class="loginByGoogle" onclick="open_login_g()">Login with Google</button>\n <button type="button" class="loginByFacebook" onclick="open_login_f()">Login with Facebook</button>\n\n </div>\n </div>\nRun Code Online (Sandbox Code Playgroud)\n\n我使用的代码是
\n\nclass Spider(scrapy.Spider):\n name = "card"\n start_urls = ["https://website/auth/signin"]\n login_user = "foo"\n login_pass = "bar"\n\n def parse(self, response):\n \'\'\'Parse login page\'\'\'\n open_in_browser(response)\n return FormRequest.from_response(\n response,\n formdata={\n \'email\':"username",\n \'password\': "pass"\n },\n callback=self.parse_home\n )\n\n def parse_home(self, response):\n open_in_browser(response)\n print response\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1656 次 |
| 最近记录: |