在python中使用scrapy执行Javascript函数

2024-09-27 09:28:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我对“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&nbsp;</a>
                   </td>
                 </tr>
               </tbody>
             </table>
           </td>
        </tr>
      </tbody>
  </table>                      

蜘蛛代码是

^{pr2}$

Tags: 函数代码标记属性tablejavascripttrclass
2条回答

使用内置的FormRequest或FormRequest.from_响应函数-在它们内部指定要提交给表单的数据。在

Scrapy不允许“执行javascript提交函数”。为此,您必须使用Splash或类似的支持JavaScript交互的替代方案。Scrapy只适用于底层HTML。在

解决Scrapy问题的方法是弄清楚JavaScript代码是如何构建请求的,并用Scrapy重新生成这样的请求。在

要了解JavaScript代码的作用,有两个选项:

  • 在页面JavaScript代码中找到sysSubmitForm()的定义,并通过自己阅读JavaScript代码来了解它的作用。

  • 使用web浏览器的开发工具的Network选项卡,可以在触发JavaScript代码时查看向服务器发送的请求,并检查请求以确定如何自己构建类似的请求。

相关问题 更多 >

    热门问题