【发布时间】:2015-02-04 22:30:39
【问题描述】:
我正在尝试使用 scrapy 登录网站,但由于有搜索按钮和登录按钮,因此无法找到正确的提交按钮。我知道在这些情况下我需要使用clickdata,但我无法找到需要点击的按钮。
我要删除的网站格式不正确,因此我无法简单地使用名称或 ID 来定位按钮。我可以在代码中识别按钮的唯一方法是通过类,我什至不确定它是否是唯一的。无论出于何种原因,即使是我scrapy的课程也无法找到该按钮。
如果它有助于网站是 ASP 并且我认为该按钮运行 javascript。
按钮 HTML
<tr><td class="x-btn-ml"><i> </i></td><td class="x-btn-mc"><em class="" unselectable="on"><button tabindex="0" class="x-btn-text" type="button" style="position: relative; width: 64px; height: 15px;">Login</button></em></td><td class="x-btn-mr"><i> </i></td></tr>
Scrapy 登录代码
return FormRequest.from_response(response, formdata = {loginInputName: login, passwordInputName: password}, clickdata = {'class': 'x-btn-text'}, callback = self.check_login_response(response))
【问题讨论】:
-
请注意
FormRequest.from_response寻找form提交,它实际上并不模拟按钮的点击(至少,与浏览器自动化工具所做的意义不同它)。这个按钮甚至有一个表格吗?如果按钮单击仅通过 JavaScript 处理,from_response在这里将无济于事:您必须检查浏览器开发人员工具的网络选项卡以查看它正在发出什么请求,然后在您的蜘蛛程序中使用 FormRequest 重新创建它代码。 -
表单只存在于字段而不是按钮。谢谢,这应该给我足够的信息来解决它。我会将此标记为已回答,但我找不到按钮。
-
哦,那么让我把这个作为答案发布吧。
标签: javascript python html asp.net scrapy