Javascript 刮擦:找不到窗体按钮

Javascript 刮擦:找不到窗体按钮,javascript,python,html,asp.net,scrapy,Javascript,Python,Html,Asp.net,Scrapy,我正在尝试使用scrapy登录到一个网站,但它找不到正确的提交按钮,因为有一个搜索按钮和登录按钮。我知道在这些情况下,我需要使用clickdata,但我无法找到需要单击的按钮 我试图删除的网站格式不好,因此我无法简单地使用名称或ID来定位按钮。我能识别代码中按钮的唯一方法是通过类,我甚至不确定它是否唯一。无论出于何种原因,即使使用I类scrapy也无法找到按钮 如果它有帮助的话,网站是ASP的,我认为这个按钮运行的是javascript 按钮HTML <tr><td class

我正在尝试使用scrapy登录到一个网站,但它找不到正确的提交按钮,因为有一个搜索按钮和登录按钮。我知道在这些情况下,我需要使用clickdata,但我无法找到需要单击的按钮

我试图删除的网站格式不好,因此我无法简单地使用名称或ID来定位按钮。我能识别代码中按钮的唯一方法是通过类,我甚至不确定它是否唯一。无论出于何种原因,即使使用I类scrapy也无法找到按钮

如果它有帮助的话,网站是ASP的,我认为这个按钮运行的是javascript

按钮HTML

<tr><td class="x-btn-ml"><i>&nbsp;</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>&nbsp;</i></td></tr>
请注意,在查找要提交的表单时,它实际上并没有模拟按钮的单击(至少,与浏览器自动化工具所做的不同)

这个按钮有表格吗


如果按钮点击仅通过JavaScript处理,则来自_response的
在这里没有帮助:您必须检查浏览器开发人员工具的“网络”选项卡,查看它发出的请求,然后使用
FormRequest(url,formdata=params)重新创建它
在您的爬行器代码中。

请注意
FormRequest。从_response
查找要提交的
表单
,它实际上并不模拟按钮的点击(至少与浏览器自动化工具所做的不同)。这个按钮有表格吗?如果按钮点击仅通过JavaScript处理,则来自_response的
在这里没有帮助:您必须检查浏览器开发人员工具的“网络”选项卡,查看它发出的请求,然后在爬行器代码中使用FormRequest重新创建它。该表单仅存在于字段中,而不是按钮。谢谢这应该给我足够的信息来解决它。我会把这个标记为已回答,但我找不到按钮。哦,那么让我把这个贴出来作为回答。
return FormRequest.from_response(response, formdata = {loginInputName: login, passwordInputName: password}, clickdata = {'class': 'x-btn-text'}, callback = self.check_login_response(response))