1
virusdefender 2020-10-16 15:08:57 +08:00 2
sqlite3
|
2
clf 2020-10-16 15:12:29 +08:00
读写文件时的性能开销不一定比读写数据库来的小。
SQLite3 是一个很不错的选择。 当然,如果你已经有数据库服务在运行了,可以直接新建一个数据库用于存放数据。 |
3
selca 2020-10-16 15:22:32 +08:00
h2
|
4
XiaoxiaoPu 2020-10-16 15:29:19 +08:00
可以用基于本地文件的 KV 存储,单进程的话 RocksDB,多进程可以用 lmdb
|
5
shoaly 2020-10-16 15:30:35 +08:00
随便找一个 star 多点的 python 日志库就行了, 日志库应该天生就解决了并发大量写入文件的性能和锁问题, 然后把数据写入日志就行了
|
7
Nillouise OP 调查了一下,sqlite 的内存使用量似乎真的可以做到几 MB,RocksDB 和 Imdb 这类嵌入式数据库应该也能差不多,符合要求,看来是我小看了嵌入式数据库的轻量级了,但用起来还是麻烦,而且有些还是 jar 程序,pass 了。
用日志的话,似乎要找一下能压缩日志文件的方法,这条路应该比较好,先按这个做了吧。 |
8
misaka19000 2020-10-16 16:10:54 +08:00
Python 标准库支持 sqlite
|
9
Nillouise OP @misaka19000 用数据库的话,拖到本地后需要处理删除旧数据的问题,而日志可以自动 rolling 、删除旧日志,登上机器查看也比较方便。看起来数据库并不怎么适合这种同步的场景。
|
10
fhsan 2020-10-16 16:21:46 +08:00
redis+celery
|
11
maocat 2020-10-16 16:23:02 +08:00
爬虫写的好,牢饭吃到饱
|
12
lastYoueven 2020-10-16 16:36:53 +08:00
数据玩的六,牢饭少不了
|
13
sapocaly 2020-10-16 17:35:40 +08:00
写日志,快,资源低
|
14
playniuniu 2020-10-16 20:35:21 +08:00
不用这么麻烦,爬到一条数据就存一条 CSV,爬之前先验证有没有这个 CSV,有就跳过,没有就爬。最后把所有的 CSV 文件合并一下就可以
|
15
ik 2020-10-16 20:39:53 +08:00 via iPhone
|
16
dreasky 2020-10-16 20:41:25 +08:00
最简单的不是直接写.json 吗 后续还要进一步处理可以导入数据库
|
17
OldActorsSmile 2020-10-16 22:18:42 +08:00
mysqlite
|