爬虫里面需要把列表页和详情页分成不同的线程吗?

2015-05-12 09:02:30 +08:00
 yakczh

列表和详情页虽然都是url对应的页面,但是里面的逻辑和流程都不相同,列表需要经常去刷新更新,而且列表页是解析出一堆url,又要重新加到url队列里面, 详情一般是采集数据,采集完了,基本流程就结束了 如果都写一个线程里,感觉流程和逻辑有点复杂,拆成两个线程,各干各的,是不是会好维护些?

2412 次点击
所在节点    问与答
5 条回复
yangyanggnu
2015-05-12 09:20:51 +08:00
从维护角度来看,通常我会将列表页面和详情页面定义成两个类。效率上,我通常将相同类的各个对象分为多线程管理(如,多线程多个详情页面类对象)。
sohoer
2015-05-12 09:37:22 +08:00
对于通用型设计,流程肯定是一样的,都是抓取数据、保存数据、发布数据
flight2006
2015-05-12 12:00:34 +08:00
明显拆开会好点,不仅维护修改起来逻辑更清楚,而且一般详情里面花费时间比较多,一个线程执行解析Url加入队列后,可以开多个线程执行详情采集,效率更高
ultimate010
2015-05-12 12:17:35 +08:00
丢任务队列解决。
yakczh
2015-05-12 12:56:20 +08:00
@ultimate010 任务队列出取出来一个要解析的页面,你也要去 if else 去判断根据页面去判断到底调用哪个类去解析页面,解析完了以后后续的处理动作, 如果一个类能解析所有的页面,这个类肯定复杂无比

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

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

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

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

© 2021 V2EX