想用广度优先的方式,爬一个网站的用户数,怎么写代码跟用包能做么精简资源呢

2020-06-25 16:34:23 +08:00
 jakeyfly

就是通过访问一个用户的页面,以某个粉丝很我的大 V 为切入点 然后通过其粉丝数量 广度优先 爬取用户资料。

要怎么写代码跟结构可以最优化结省资源呢?

百分级别的用户,用 REDIS 应该会崩吧

KAFKA 呢? 好久没碰了 现在一头雾水 大佬们有没有案例赏个学习下

1094 次点击
所在节点    问与答
12 条回复
jakeyfly
2020-06-25 16:34:48 +08:00
忘记了说 用 PYTHON
qiayue
2020-06-25 16:40:19 +08:00
不是一秒钟可以爬完,一定是控制好频率,不能太快,也不能太有规律,要有快有慢。
那么就说明你不能一直把数据存在内存中,你需要有能够缓存数据的地方。
存文件,或者存数据库都行。这种场景怎么可能会把 redis 给用崩掉?
jakeyfly
2020-06-25 16:49:06 +08:00
@qiayue 应该是用 NOSQL 存的 您的意思是说 直接用 NOSQL 作为队列?
dsg001
2020-06-25 16:55:36 +08:00
几年前爬知乎,用 mysql 也没问题,不考虑后期代码维护,gevent+requests+lxml 最简单省事
JCZ2MkKb5S8ZX9pq
2020-06-25 16:58:35 +08:00
也要看平台的,比如微博限制粉丝显示上限,根本看不到多少的。
要么买接口,要么长期潜伏。
qiayue
2020-06-25 17:06:14 +08:00
做事之前不要想太多,先动手去做,做了之后遇到一个问题就解决一个问题,没有完美的方案,只有最适合自己的方案。
jakeyfly
2020-06-25 17:15:40 +08:00
@JCZ2MkKb5S8ZX9pq 不用太多吧,我只是能抓多少就抓多少
jakeyfly
2020-06-25 17:59:44 +08:00
@dsg001 如果考虑呢 要一直抓新用户可能
gabon
2020-06-26 02:50:43 +08:00
刚好之前做过。大概思路是布隆过滤器判断用户是否爬过,分布式调度,根据用户权重确定更新频率。话说现在微博生态这么差,爬到的数据质量有意义吗。。
dsg001
2020-06-26 18:20:18 +08:00
@jakeyfly 那就上 scrapy,后期维护简单
alienx717
2020-06-26 18:53:37 +08:00
爬虫的从入门到取保候审
jakeyfly
2020-06-27 02:25:53 +08:00
@gabon 爬雪球

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/684700

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX