如何在scrapy中发出请求之前更改请求url?

2024-03-30

我需要在下载响应之前修改我的请求网址。但我无法改变它。即使使用修改请求网址后request.replace(url=new_url), the process_response打印未修改的 url。这是中间件的代码:

def process_request(self, request, spider):
    original_url = request.url
    new_url= original_url + "hello%20world"
    print request.url            # This prints the original request url
    request=request.replace(url=new_url)
    print request.url            # This prints the modified url

def process_response(self, request, response, spider):
    print request.url            # This prints the original request url
    print response.url           # This prints the original request url
    return response

谁能告诉我我在这里缺少什么吗?


由于您正在修改request对象在process_request()- 你需要把它返还:

def process_request(self, request, spider): 
    # avoid infinite loop by not processing the URL if it contains the desired part
    if "hello%20world" in request.url: pass 

    new_url = request.url + "hello%20world"
    request = request.replace(url=new_url) 
    return request
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在scrapy中发出请求之前更改请求url? 的相关文章

随机推荐

  • 让 TFS 将每个项目输出到其自己的目录的最佳方法是什么?

    我正在将大型代码库放入 Team Foundation Server 中 我希望构建过程能够创建我们项目的 准备部署 版本 我们执行此操作的正常方法是将每个项目的输出放在其自己的文件夹中 因此 例如 我们最终会得到类似的东西 C proje
  • R:创建具有节点属性的“statnet”网络

    我正在按照这里的示例使用 statnet 库http personal psu edu drh20 papers v24i09 pdf http personal psu edu drh20 papers v24i09 pdf 第一个示例展
  • 最小化 malloc() 调用量可以提高性能吗?

    考虑两个应用程序 一个 num 1 调用 malloc 多次 另一个 num 2 调用 malloc 几次 两个应用程序都分配same内存量 假设 100MB 对于哪个应用程序 下一个 malloc 调用会更快 1 还是 2 换句话说 ma
  • 如何为模板设置主题以进行编辑或添加特定内容类型的节点?

    我想为模板设置主题以进行编辑或添加特定内容类型的节点 例如 为了主题化所有内容类型表单 我使用该文件page node add edit tpl php 取决于我需要添加或编辑什么 但我没有找到自定义节点类型的模板名称 例如 产品 我只需要
  • 使用自定义选项时,Magento 1.7.0.1 将价格重置为 0

    我在用着Magento 1 7 0 1最近刚刚升级1 6 2 0 我有 SCP 扩展以及 MageWorx 高级自定义选项 我有一个可配置的产品 其中关联的简单产品具有自定义选项 如果您选择以下组合中的下拉菜单 您将看到带有可用自定义选项的
  • Laravel 将 .html 附加到路由(并且也可以在没有 .html 的情况下工作)

    添加 html 并使其双向工作的最简单方法是什么 example com about gt 有效 example com about html gt 有效 我可以将 html 添加到路线中 但如果没有 它就无法工作 Route get ab
  • 随时间反向传播

    有谁知道有一个可以有效实现时间反向传播的库吗 Java Python C VB NET F 中的任何一个 最好是最后一个 都可以 假设您已经在使用一些 BP 库 那么使用 BP 作为流程中的一个步骤来实现 BPTT 应该 TM 相当简单 B
  • 从数据库填充 JTree

    我有一个包含字段category id category name 和parent category id 的表 并且parent category id具有来自表示父子关系的category id的值 我没有任何固定的层次结构级别 它可能
  • 在 T-SQL 中透视数据

    我有一群人 我们称它们为A B C 我有一张表格 显示他们每个月的工资 PERSON MONTH PAID A JAN 10 A FEB 20 B JAN 10 B FEB 20 B SEP 30 C JAN 10 C JUNE 20 C
  • 将多个数组槽设置为一个值的更简单方法

    我正在编码C https en wikipedia org wiki C 我有以下代码 int array 30 array 9 1 array 5 1 array 14 1 array 8 2 array 15 2 array 23 2
  • java中最常用的运行时异常有哪些? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 作为一名希望完善自己的编程技能的java程序员 我经常遇到必须创建运行时异常的情况 我知道如果明智地使用的话 这是一种很好的做法 亲自 空指针异
  • Android 3.2 所有屏幕的布局相同

    我为我的应用程序设置了以下布局配置 小 正常 大 超大屏幕布局适用于 Android 1 5 至 3 1 在 android 3 2 中所有屏幕即 small 320 426密度为 160 normal 320 470密度为 160 lar
  • 删除 HTML5 Canvas 上的部分图像?

    我有一个 HTML5 Canvas 我正在使用KineticJS KonvaJS http konvajs github io 画布库 在空白画布上 我绘制了如下图所示的图像 现在我想创建一个圆形形状 可用于擦除图像的某些部分 图中的红色圆
  • COM_STMT_PREPARE 响应大小错误。收到 7.LARAVEL 错误

    我有一个使用 laravel 开发的博客 在我的本地电脑上 一切正常 但是当我将其上传到实时共享托管服务器时 它会抛出如下错误 ErrorException in MySqlConnector php line 124 Wrong COM
  • 使用 NLTK 的块解析器匹配单词

    NLTK的块解析器的正则表达式可以匹配POS标签 但是它们也可以匹配特定的单词吗 所以 假设我想用名词后跟动词 left 来对任何结构进行分块 将此模式称为 L 例如 句子 the DT dog NN left VB 应被分块为 S DT
  • 实现 INotifyPropertyChanged 的​​模式?

    我已经看到以下用于实现 INotifyPropertyChanged 的 模式 private void NotifyPropertyChanged string propertyName PropertyChangedEventHandl
  • 我可以在 .NET Windows 窗体中创建多列上下文菜单吗?

    我想创建一个包含多个列的上下文菜单 基本上它会是这样的 First item common option All Options gt Second item common option All Options gt Third item
  • 将 Facenet 模型 .pb 文件转换为 TFLITE 格式时出错

    我正在尝试根据我从 Inception ResNet 获得的预训练冻结 pb大卫 桑德伯格的 Github https github com davidsandberg facenet使用以下命令在 Ubuntu 上使用 Tensorflo
  • 使用 git rebase 定期将分支同步到 master

    我有一个 Git 存储库 其中的分支几乎从不更改 没有其他人对其做出贡献 它基本上是主分支 删除了一些代码和文件 有了这个分支 我可以轻松打包项目的精简版本 而不必每次都手动删除代码和文件 我一直在使用git rebase以使该分支与主分支
  • 如何在scrapy中发出请求之前更改请求url?

    我需要在下载响应之前修改我的请求网址 但我无法改变它 即使使用修改请求网址后request replace url new url the process response打印未修改的 url 这是中间件的代码 def process re