跳转到主要内容

Scrapy爬虫中间件,用于清理请求URL中的查询参数

项目描述

https://travis-ci.org/scrapy-plugins/scrapy-querycleaner.svg?branch=master https://codecov.io/gh/scrapy-plugins/scrapy-querycleaner/branch/master/graph/badge.svg

这是一个Scrapy爬虫中间件,用于根据用户提供的模式清理爬虫输出请求URL中的查询参数。

安装

使用pip安装scrapy-querycleaner

$ pip install scrapy-querycleaner

配置

  1. 在您的settings.py文件中包含QueryCleanerMiddleware以添加SPIDER_MIDDLEWARES

    SPIDER_MIDDLEWARES = {
        'scrapy_querycleaner.QueryCleanerMiddleware': 100,
    }

    这里,优先级100只是一个示例。根据您已启用的其他中间件设置其值。

  2. 通过在 setting.py 中使用 QUERYCLEANER_REMOVEQUERYCLEANER_KEEP (或两者同时使用) 来启用中间件。

用法

为了启用中间件,以下设置中至少需要存在一个。

支持的设置

QUERYCLEANER_REMOVE

一个必须匹配查询参数名的模式(正则表达式),以便将其从 URL 中删除。(其他所有参数将被接受。)

QUERYCLEANER_KEEP

一个必须匹配查询参数名的模式,以便将其保留在 URL 中。(其他所有参数将被删除。)

如果某些查询参数模式应该保留,而某些应该删除,则可以同时使用这两个设置。

删除 模式具有比 保留 模式更高的优先级。

示例

假设蜘蛛提取的 URL 如下所示

http://www.example.com/product.php?pid=135&cid=12&ttda=12

我们只想留下参数 pid

为了实现这个目标,我们可以使用 QUERYCLEANER_REMOVEQUERYCLEANER_KEEP

  • 在第一种情况下,模式将是 cid|ttda

    QUERYCLEANER_REMOVE = 'cid|ttda'
  • 在第二种情况下,pid

    QUERYCLEANER_KEEP = 'pid'

最佳解决方案取决于特定情况,即查询过滤器将如何影响蜘蛛预期提取的任何其他 URL。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

scrapy-querycleaner-1.0.0.tar.gz (3.2 kB 查看散列)

上传时间

构建分布

scrapy_querycleaner-1.0.0-py2.py3-none-any.whl (3.8 kB 查看散列)

上传时间 Python 2 Python 3

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面