scrapy - scrapy-splash 如何过滤重复项?
问题描述
使用 scrapy-splash 库渲染 JS 时。我们将其自定义 DUPEFILTER_CLASS 添加到 settings.py 文件中。
DUPEFILTER_CLASS = 'scrapy_splash.SplashAwareDupeFilter'
似乎这用于过滤请求,以便不发送太多请求并加快处理速度。但是,使用scrapy-splash过滤请求的基础是什么?是网址吗?
解决方案
使用splash_request_fingerprint函数检测重复。通过查看代码和issue 900 (still open) ,会考虑 url,但是如果您想将它与具有相同 url 的其他请求区分开来,您可以选择将元参数传递给请求。但是我们必须查看scrapy.utils.request:request_fingerprint因为这也被调用了。
什么是指纹的一部分:
什么不是指纹的一部分:
- http 请求标头(因为 include_headers默认为None )
- 默认情况下, url 片段不用于计算指纹,除非
request.meta.splash.args
包含密钥url
推荐阅读
- visual-c++ - vc++程序运行时修改进程名
- ios - 导航栏未完全覆盖手机屏幕顶部
- scipy - Python 2D KDE 强度
- sql - 函数 MODIFY 是 SQL Query 中的一个东西吗?它引发语法错误
- android - 如何更改android第二显示分辨率
- c - 我在做leetcode问题的时候,发现输入代码后就溢出了
- flutter - 如何在 FutureProvider 未完成时设置加载指示器
- android - 使用 Flutter 接受 Android 许可证,无需手动确认
- firebase - 为什么在将“继续 URL”传递给 Firebase 电子邮件/密码身份验证后没有重定向?
- javascript - 木偶评估页面。评估