Skip to main content
 首页 » 编程设计

python之用于在数据库中准备的 Scrapy 反向项目排序

2025年05月04日7java哥

我正在尝试通过 mysql 管道将我的蜘蛛抓取的项目放入 mysql 数据库中。一切正常,但我看到一些奇怪的行为。我看到数据库的填充顺序与网站本身的顺序不同。就像一个随机顺序。我猜可能是字典之类的已删除项目列表。

我的问题是:

  1. 如何获得与网站本身商品相同的订单。
  2. 我怎样才能颠倒问题 1 的顺序。

所以网站上的项目:

  • 一个
  • B
  • C
  • D
  • E

在我的 sql 中添加顺序:

  • E
  • D
  • C
  • B
  • 一个

请您参考如下方法:

没有实际代码很难说,但理论上..

Scrapy 是完全异步的,你无法知道将通过管道解析和处理的项目的顺序。

但是,您可以通过使用 priority 键“标记”每个项目来控制行为。添加字段 priority 到您的 Item 类,在您的蜘蛛的 parse_item 方法中设置 priority 基于在网页上的位置,然后在您的管道中,您可以将此 priority 字段写入数据库(以便以后能够排序),或者将所有项目收集在类范围列表中,并在 close_spider 方法中对列表进行排序并将其批量插入到数据库中。

希望对您有所帮助。