Scrapy,start_url 限制

2023-12-26

我想知道是否有数量限制start_urls我可以分配给我的蜘蛛吗? 据我搜索,似乎没有关于列表限制的文档。

目前我已经设置了我的蜘蛛,以便列表start_urls从 csv 文件中读取。网址数量约为 1,000,000 个。


本身没有限制,但您可能想自己限制它,否则您可能会遇到内存问题。
可能发生的情况是,所有这些 1M 的 url 都将被安排到 scrapy 调度程序,并且由于 python 对象比普通字符串重很多,因此您最终会耗尽内存。

为了避免这种情况,您可以使用以下命令批量处理您的起始网址spider_idle signal:

class MySpider(Spider):
    name = "spider"
    urls = []
    batch_size = 10000

    @classmethod
    def from_crawler(cls, crawler, *args, **kwargs):
        spider = cls(crawler, *args, **kwargs)
        crawler.signals.connect(spider.idle_consume, signals.spider_idle)
        return spider 

    def __init__(self, crawler):
        self.crawler = crawler
        self.urls = [] # read from file

    def start_requests(self):
        for i in range(self.batch_size):
            url = self.urls.pop(0)
            yield Request(url)


    def parse(self, response):
        pass
        # parse

    def idle_consume(self):
        """
        Everytime spider is about to close check our urls 
        buffer if we have something left to crawl
        """
        reqs = self.start_requests()
        if not reqs:
            return
        logging.info('Consuming batch')
        for req in reqs:
            self.crawler.engine.schedule(req, self)
        raise DontCloseSpider
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Scrapy,start_url 限制 的相关文章

  • Lighttpd 和 cgi python

    我正在尝试通过 lighttpd 执行一些 python 脚本 但是当我尝试运行它时 我只得到一个要求我下载的空白文件 lighttpd conf server modules mod access mod alias mod access
  • Django 的内联管理:一个“预填充”字段

    我正在开发我的第一个 Django 项目 我希望用户能够在管理中创建自定义表单 并向其中添加字段当他或她需要它们时 为此 我在我的项目中添加了一个可重用的应用程序 可在 github 上找到 https github com stephen
  • 元组有什么用?

    我现在正在学习 Python 课程 我们刚刚介绍了元组作为数据类型之一 我阅读了它的维基百科页面 但是 我无法弄清楚这种数据类型在实践中会有什么用处 我可以提供一些需要一组不可变数字的示例吗 也许是在 Python 中 这与列表有何不同 每
  • 如何用python脚本控制TP LINK路由器

    我想知道是否有一个工具可以让我连接到路由器并关闭它 然后从 python 脚本重新启动它 我知道如果我写 import os os system ssh l root 192 168 2 1 我可以通过 python 连接到我的路由器 但是
  • Python 中的哈希映射

    我想用Python实现HashMap 我想请求用户输入 根据他的输入 我从 HashMap 中检索一些信息 如果用户输入HashMap的某个键 我想检索相应的值 如何在 Python 中实现此功能 HashMap
  • 使用 kivy textinput 的 'input_type' 属性的问题

    您好 我在使用 kivy 的文本输入小部件的 input type 属性时遇到问题 问题是我制作了两个自定义文本输入 其中一个称为 StrText 其中设置了 input type text 然后是第二个文本输入 名为 NumText 其
  • 使用字典映射数据帧索引

    为什么不df index map dict 工作就像df column name map dict 这是尝试使用index map的一个小例子 import pandas as pd df pd DataFrame one A 10 B 2
  • YOLOv8获取预测边界框

    我想将 OpenCV 与 YOLOv8 集成ultralytics 所以我想从模型预测中获取边界框坐标 我该怎么做呢 from ultralytics import YOLO import cv2 model YOLO yolov8n pt
  • Python,将函数的输出重定向到文件中

    我正在尝试将函数的输出存储到Python中的文件中 我想做的是这样的 def test print This is a Test file open Log a file write test file close 但是当我这样做时 我收到
  • “隐藏”内置类对象、函数、代码等的名称和性质[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我很好奇模块中存在的类builtins无法直接访问的 例如 type lambda 0 name function of module
  • 如何使用python在一个文件中写入多行

    如果我知道要写多少行 我就知道如何将多行写入一个文件 但是 当我想写多行时 问题就出现了 但是 我不知道它们会是多少 我正在开发一个应用程序 它从网站上抓取并将结果的链接存储在文本文件中 但是 我们不知道它会回复多少行 我的代码现在如下 r
  • 如何通过 TLS 1.2 运行 django runserver

    我正在本地 Mac OS X 机器上测试 Stripe 订单 我正在实现这段代码 stripe api key settings STRIPE SECRET order stripe Order create currency usd em
  • pyspark 将 twitter json 流式传输到 DF

    我正在从事集成工作spark streaming with twitter using pythonAPI 我看到的大多数示例或代码片段和博客是他们从Twitter JSON文件进行最终处理 但根据我的用例 我需要所有字段twitter J
  • Pandas 将多行列数据帧转换为单行多列数据帧

    我的数据框如下 code df Car measurements Before After amb temp 30 268212 26 627491 engine temp 41 812730 39 254255 engine eff 15
  • Python:XML 内所有标签名称中的字符串替换(将连字符替换为下划线)

    我有一个格式不太好的 XML 标签名称内有连字符 我想用下划线替换它 以便能够与 lxml objectify 一起使用 我想替换所有标签名称 包括嵌套的子标签 示例 XML
  • Python ImportError:无法导入名称 __init__.py

    我收到此错误 ImportError cannot import name life table from cdc life tables C Users tony OneDrive Documents Retirement retirem
  • 实现 XGboost 自定义目标函数

    我正在尝试使用 XGboost 实现自定义目标函数 在 R 中 但我也使用 python 所以有关 python 的任何反馈也很好 我创建了一个返回梯度和粗麻布的函数 它工作正常 但是当我尝试运行 xgb train 时它不起作用 然后 我
  • Django-tables2 列总计

    我正在尝试使用此总结列中的所有值文档 https github com bradleyayers django tables2 blob master docs pages column headers and footers rst 但页
  • 如何应用一个函数 n 次? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 假设我有一个函数 它接受一个参数并返回相同类型的结果 def increment x return x 1 如何制作高阶函数repeat可以
  • 更改 Tk 标签小部件中单个单词的颜色

    我想更改 Tkinter 标签小部件中单个单词的字体颜色 我知道可以使用文本小部件来实现与我想要完成的类似的事情 例如使单词 YELLOW 显示为黄色 self text tag config tag yel fg clr yellow s

随机推荐

  • Oracle 中的存储过程给出错误 PLS-00428

    我正在尝试在 oracle 中创建以下过程 CREATE OR REPLACE PROCEDURE SPBILL SPCLIENT ID VARCHAR2 AS BEGIN SELECT C CLIENT NAME B ROOM ID R
  • 安装 vmware 工具:无法识别 3.8.0-19-generic 内核文件的路径 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 所以我正在使用 Lubuntu 并使用 vmplayer 作为虚拟机运行 并且我正在尝试安装 vmware 工具 做完之后 vmware
  • CodeIgniter URI 中不允许使用句点?

    所以读完之后这个问题 https stackoverflow com questions 389169 best practices for api versioning关于 API 版本控制 我决定为所有路由添加版本号前缀 http lo
  • XSLT 分割输出文件 - muenchian 分组

    我有一个 XSLT 文件 以便转换大量数据 我想添加一个 拆分 功能 无论是作为链接的 XSLT 还是在当前的 XSLT 中 它可以创建多个输出文件 以便将文件的大小限制在某个阈值以下 假设输入 XML 如下
  • Admob 用户消息平台的强制同意

    我从已弃用的 GDPR 同意库切换到新的用户消息传递平台 并使用了中所述的代码文档 https developers google com admob ump android quick start 我注意到当用户点击管理选项 then 确
  • 如何清除 SFSafariViewController 凭据?

    我在 Swift 2 中使用 SFSafariViewController 在带有 ios 9 1 13B143 的 iPad Air 2 上显示网页 每个网页都需要用户的凭据 但是 当用户按下注销按钮时 我需要清除这些凭据 我尝试过使用以
  • ruby on Rails 中的 url 编码等效项

    Ruby on Rails 2 3 5 中是否有与 PHP 的 urlencode 等效的代码 它对要在 URL 的查询部分中使用的字符串进行编码 我用谷歌搜索了它 但所有答案似乎都可以追溯到 2006 年之前 而且似乎有日期 这就是我发现
  • 在 Mac 上安装适用于 Python 的 Gtk 3

    我已经使用 homebrew 安装了 python gtk3 但它打印 警告 gtk 3 3 14 6 已安装 但是当我尝试在 python 中导入它时 from gi repository import Gtk 它给出了错误 导入错误 没
  • WebView 文本大小

    有时 当我加载页面 没有静态内容 动态构建 时 我看到字体太小1 http s8 postimage org 7akrcd8wl webview1 png 如果我重新加载 我会正确看到它2 http s7 postimage org cp6
  • 如何按照我们设置的顺序从本地存储中检索数据

    我正在通过循环遍历顶部菜单 对象数组 来读取 json 文件并将项目取出并将其存储到本地存储中 一切正常 甚至数据也存储在本地存储中 但我的问题是它按排序顺序将数据存储在 localStorage 中 这可能是其默认行为 但我不需要按排序顺
  • Python 访问字典列表中的字典

    您好 我有下面的字典 它有一个带有列表的值 列表内有一个字典 有没有办法使用键而不是列表索引来调用列表内的字典值 列表内的字典可能会有所不同 因此索引值可能并不总是提供正确的键值对 但如果我能够使用密钥 我总能获得正确的值 mylist m
  • 请求的资源上不存在“Access-Control-Allow-Origin”标头。与 github 站点

    http kingdiepie github io testing html http kingdiepie github io testing html XMLHttpRequest 无法加载https docs google com s
  • 在 PostgreSQL 和 Ruby on Rails 中使用间隔

    我想从 Rails 应用程序将持续时间 2 天 5 年 保存为 PostgreSQL 中的间隔 uration min 和uration max 都是 2 天 或 5 年 之类的值 因此它们各自都是一个间隔 def change creat
  • 如何防止控件改变Z顺序?

    我在 Net 中有用户控件 我在 WndProc 中使用命中测试 以允许在运行时使用鼠标调整其大小 问题是 命中测试成功后 按下鼠标 拖动以调整大小 释放鼠标 控件会按 Z 顺序向上跳跃并破坏其在窗体中的位置 我需要命中测试 因为它是一个非
  • 在 Jupyter 笔记本中使用 pandas 导入 csv 文件时出现 FileNotFoundError

    import pandas as pd df pd read csv home josepm Documents test ver2 csv FileNotFoundError Traceback most recent call last
  • 如何在javascript中检查日期是否在本周?

    我有这个日期 2016 04 23T11 45 00Z 我想在本周检查这个日期吗 Thanks 日期很难 我总是建议使用专用于日期处理的库 因为它可以减少代码中出现错误的机会 MomentJS http momentjs com 是一个很好
  • Notepad++ 将打开文档中的两行替换为其他 (10) 行

    我想用 Notepad 中的其他行替换两行 主要问题是我无法复制所有应该替换的行 如果我将所有行粘贴到 替换为 输入字段中 则只会将第一行插入该字段中 看来换行符没有正确复制 选择应插入 查找内容 字段中的行 带有换行符 非常容易 因为我可
  • 子子域上的通配符 SSL [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我们有一个通配符 SSL 证书 domain example 并拥有一个网站sub1 sub2 domain example macOS 上的 Saf
  • 加密云中的 HBase 静态数据

    我对 HBase 还很陌生 并被分配了一项将我们的基础设施迁移到云的任务 我们的 HBase 数据包含一些客户信息 因此需要在静态时进行加密 我已经在读这个了 静态数据的透明加密 http hbase apache org book ch0
  • Scrapy,start_url 限制

    我想知道是否有数量限制start urls我可以分配给我的蜘蛛吗 据我搜索 似乎没有关于列表限制的文档 目前我已经设置了我的蜘蛛 以便列表start urls从 csv 文件中读取 网址数量约为 1 000 000 个 本身没有限制 但您可