我对“scrapy”非常陌生,我正在废弃一个网站,因为我有一些锚定标记,这些标记由href属性和java脚本SubmitForm函数组成。当我点击javascript函数时,一个页面打开了,我需要从中获取数据。我使用了Xpath并找到了特定锚定标记的href,但无法执行包含javascript函数的href属性。 谁能告诉我如何在scrapy中执行锚标记的javascript提交函数Python。我的HTML代码是
<table class="Tbl" cellspacing="2" cellpadding="0" border="0">
<tbody>
<tr>
<td class="TblOddRow">
<table cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td valign="middle" nowrap="">
<a class="Page" alt="Click to view job description" title="Click to view job description" href="javascript:sysSubmitForm('frmSR1');">Accountant </a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
蜘蛛代码是
^{pr2}$
使用内置的FormRequest或FormRequest.from_响应函数-在它们内部指定要提交给表单的数据。在
Scrapy不允许“执行javascript提交函数”。为此,您必须使用Splash或类似的支持JavaScript交互的替代方案。Scrapy只适用于底层HTML。在
解决Scrapy问题的方法是弄清楚JavaScript代码是如何构建请求的,并用Scrapy重新生成这样的请求。在
要了解JavaScript代码的作用,有两个选项:
在页面JavaScript代码中找到
sysSubmitForm()
的定义,并通过自己阅读JavaScript代码来了解它的作用。使用web浏览器的开发工具的Network选项卡,可以在触发JavaScript代码时查看向服务器发送的请求,并检查请求以确定如何自己构建类似的请求。
相关问题 更多 >
编程相关推荐