想问问各位爬虫的策略

2018-07-02 10:19:52 +08:00
 lk2589
目前在做一个爬虫,老板的要求是要我抓取网页和解析分开,也就是把网页的正文全部保存下来,解析可以延后。
想问问你们的策略是抓取和解析放在一起了还是分开了?
以后的爬虫数据更新是如何更新?全部更新?
3260 次点击
所在节点    Python
21 条回复
lk2589
2018-07-02 10:47:10 +08:00
呃呃,没有老哥解解惑吗。。
evlos
2018-07-02 10:54:34 +08:00
分开,近期的内容定时更新
sikariba
2018-07-02 11:35:51 +08:00
分开,出问题的时候调试起来方便得多
jatesun
2018-07-02 11:44:03 +08:00
肯定是分开啊,没用框架吗?比如 python 的 scrapy,java 的 webmagic ?
jatesun
2018-07-02 11:44:44 +08:00
另外更新的话区分更新和新增吧,维护一个 redis 就行了
feikon
2018-07-02 11:54:29 +08:00
更新的话如果数据量小可以考虑 set,然后数据量大就用数据库
lk2589
2018-07-02 13:40:23 +08:00
没用框架。
我还想问下解析
多网站的爬虫如何制作的?对爬取的网站设置一个标签,使用不同的解析方法吗?
wingyiu
2018-07-02 13:49:58 +08:00
分开是个不错的办法。

SEDA 了解一下。
fiht
2018-07-02 13:58:24 +08:00
分开。
不仅是调试的问题。
保存原始的 HTML 信息以后再做数据分析会方便很多。
数据量大的话推荐一下 http://www.infoq.com/cn/presentations/tera-in-the-ten-thousand-level-real-time-search-framework?utm_source=InfoQ&utm_medium=zones 百度的这个讲座。里面有很多干货了。
楼上讲的 scrapy 和 webmagic 在某些意义上还是抓取和解析是没有分开的,默认 /大多数用户都是在 memory 里面倒腾,一个抓取和解析分开的例子应该是 nutch。
目前我们面向大约 1kw URL,准备模仿百度的这一套架构搞一搞。
woscaizi
2018-07-02 14:09:07 +08:00
@fiht #9 1kw URL 效率怎么样?多久遍历一次?
binux
2018-07-02 14:15:30 +08:00
我不知道你分开是什么意思,就算百度抓取和解析是分开的,但也是实时的啊。为什么要延后?
fiht
2018-07-02 14:16:56 +08:00
@woscaizi 抓取+入 hbase,三天更新一次。目前抓取速度不是问题,都是可以通过加机器解决的。现在我们在想的是怎么基于这 1kw HTML 做一些安全上的研究。
RicardoScofileld
2018-07-02 14:18:43 +08:00
所谓的分开是指先把页面爬取出来,之后再从页面中提取数据吗?
lk2589
2018-07-02 14:22:36 +08:00
@RicardoScofileld 是这样的,解析出错就不用重新抓数据了
dbow
2018-07-02 14:24:14 +08:00
抓取网页之后, 丢到解析 worker 的队列去, 可以做成实时的。
woscaizi
2018-07-02 15:06:27 +08:00
@fiht 期待后续的分享
tabris17
2018-07-02 15:07:46 +08:00
当然是职责分离呀
crawl3r
2018-07-02 16:18:53 +08:00
如果只是简单的页面,比如就是抓取独立的 Url,而且抓的数据量非常大,或者解析工作非常大(比如搜索引擎),抓取与解析分开会好点;
如果抓取逻辑比较复杂,比如要抓取 c 页面,要经过 a->b->c,那最好写在一块,因为如果解析逻辑分开的话,你要写 3 个有强相关的解析代码,从部署与维护的角度看太复杂了。
zdnyp
2018-07-02 17:57:17 +08:00
我们是放一起的。只保存清洗过的内容。如果需要调试的话,就找原网页 url 调...
anyfucker
2018-07-03 11:25:34 +08:00
我觉得抓取和解析分开。
最好是做成异步,把抓取的数据放在全局队列里,解析的进程另外单独处理,一方面有助于架构分离,另一方面分开的逻辑便于将来横向扩展。

https://tweetyf.org/p/359

我也写过一些,不过后来没有时间搞完,希望有时间可以和楼主多交流爬虫和搜索引擎的只是。

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

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

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

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

© 2021 V2EX