我正在尝试通过 mysql 管道将我的蜘蛛抓取的项目放入 mysql 数据库中。一切正常,但我看到一些奇怪的行为。我看到数据库的填充顺序与网站本身的顺序不同。就像一个随机顺序。我猜可能是字典之类的已删除项目列表。
我的问题是:
- 如何获得与网站本身商品相同的订单。
- 我怎样才能颠倒问题 1 的顺序。
所以网站上的项目:
- 一个
- B
- C
- D
- E
在我的 sql 中添加顺序:
- E
- D
- C
- B
- 一个
请您参考如下方法:
没有实际代码很难说,但理论上..
Scrapy 是完全异步的,你无法知道将通过管道解析和处理的项目的顺序。
但是,您可以通过使用 priority 键“标记”每个项目来控制行为。添加字段 priority 到您的 Item 类,在您的蜘蛛的 parse_item 方法中设置 priority 基于在网页上的位置,然后在您的管道中,您可以将此 priority 字段写入数据库(以便以后能够排序),或者将所有项目收集在类范围列表中,并在 close_spider 方法中对列表进行排序并将其批量插入到数据库中。
希望对您有所帮助。
