在CasperJS中通过事件:page.resource.requested添加一个请求头

Add a request header through the event: page.resource.requested in CasperJS

本文关键字:添加 请求 一个 requested resource CasperJS 事件 page      更新时间:2023-09-26

我尝试通过事件为请求添加自定义标头(未成功):

 casper.on("page.resource.requested",function(requestData,request){...}

类似于

casper.on("page.resource.requested",function(requestData,request){
     request.setHeader("X-myHeader", "123");
}

我想我可以这样做,因为在PhantomJS中你可以这样写:

 page.onResourceRequested = function(requestData, networkRequest) {
      networkRequest.setHeader("X-myHeader", "123");
 }

在事件期间(casper对象)添加请求头的选项是什么?

在最新的1.9.7版本中,有一个错误请求在onresourcerequrequested中没有setHeader函数#12264。你需要使用较早版本的phantomjs。

出现差异是因为您在命令行和casperjs中使用了不同版本的phantomjs。在windows中,您可以在此文件夹中找到casper's phantom:

<>之前C:'Users'someuser'AppData'Roaming'npm' node_modules ' casperjs ' node_modules ' phantomjs之前

您可以做的两个最简单的操作是:

  • 添加你可以使用的工作phantomjs到你的PATH (casper将使用它)

  • 用正常的phantomjs版本覆盖casperjs'node_modules'phantomjs'lib'phantom中的可执行文件

  • 让npm为你下载版本

最后一个点的步骤是:

  1. 通过命令行

  2. 调用phantomjs --version来查找它使用的是哪个版本的phantomjs
  3. 在命令行

    中更改为以下文件夹<>之前C:'Users'someuser'AppData'Roaming'npm' node_modules ' casperjs
  4. 安装你的工作版本(我实际上不知道哪个工作,所以我在这里使用1.9.0)

    <>之前NPM安装phantomjs@1.9.0-x之前

    您可以通过调用npm show phantomjs查看可用的版本