【问题标题】:Scrapy XMLFeedSpider is very slowScrapy XMLFeedSpider 非常慢
【发布时间】:2020-11-11 11:41:24
【问题描述】:

我有一个执行速度非常慢的刮板。我知道瓶颈不是管道(即bi_pipeline),因为其他不使用XMLFeedSpider 的刮刀非常快。这是我的代码:

class MySpider(XMLFeedSpider):

    custom_settings = {
        'ITEM_PIPELINES': {
            'my.pipelines.bi_pipeline': 400
        }
    }

    start_urls=["http://localhost/my.xml"]

    iterator = 'iternodes'  # This is actually unnecessary, since it's the default value
    itertag = 'DEALER'

    def parse_node(self, response, node):
   
        my_item = Dealer()

        my_item['title'] = node.xpath('TITLE/text()').get()

        # send to pipeline to get stored in database
        yield my_item
        
        # get the sales for each dealer
        yield Request("https://some.domain.com/od/dealers.json?id=" + node.xpath('ID/text()').get(), callback=self.each_sale)

我不知道为什么,但这很慢。就像每分钟 35 个项目。我应该在哪里进行优化?

【问题讨论】:

  • 如果您只是访问这些页面会发生什么?也许服务器只是很慢或正在限制您的速率?

标签: scrapy


【解决方案1】:

解决了。在数据库中的触发器上调用了更新脚本。这是一个清理脚本,我运行它的目标需要大量清理。

【讨论】:

    猜你喜欢
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-12
    • 2015-06-14
    • 2013-05-14
    • 2021-05-24
    • 1970-01-01
    相关资源
    最近更新 更多