1 lk2589 OP 呃呃,没有老哥解解惑吗。。 |
![]() | 2 evlos 2018-07-02 10:54:34 +08:00 via iPhone 分开,近期的内容定时更新 |
![]() | 3 sikariba 2018-07-02 11:35:51 +08:00 分开,出问题的时候调试起来方便得多 |
![]() | 4 jatesun 2018-07-02 11:44:03 +08:00 肯定是分开啊,没用框架吗?比如 python 的 scrapy,java 的 webmagic ? |
![]() | 5 jatesun 2018-07-02 11:44:44 +08:00 另外更新的话区分更新和新增吧,维护一个 redis 就行了 |
6 feikon 2018-07-02 11:54:29 +08:00 更新的话如果数据量小可以考虑 set,然后数据量大就用数据库 |
7 lk2589 OP 没用框架。 我还想问下解析 多网站的爬虫如何制作的?对爬取的网站设置一个标签,使用不同的解析方法吗? |
![]() | 8 wingyiu 2018-07-02 13:49:58 +08:00 分开是个不错的办法。 SEDA 了解一下。 |
![]() | 9 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,准备模仿百度的这一套架构搞一搞。 |
![]() | 11 binux 2018-07-02 14:15:30 +08:00 via Android 我不知道你分开是什么意思,就算百度抓取和解析是分开的,但也是实时的啊。为什么要延后? |
![]() | 12 fiht 2018-07-02 14:16:56 +08:00 @woscaizi 抓取+入 hbase,三天更新一次。目前抓取速度不是问题,都是可以通过加机器解决的。现在我们在想的是怎么基于这 1kw HTML 做一些安全上的研究。 |
![]() | 13 RicardoScofileld 2018-07-02 14:18:43 +08:00 所谓的分开是指先把页面爬取出来,之后再从页面中提取数据吗? |
14 lk2589 OP @RicardoScofileld 是这样的,解析出错就不用重新抓数据了 |
15 dbow 2018-07-02 14:24:14 +08:00 抓取网页之后, 丢到解析 worker 的队列去, 可以做成实时的。 |
![]() | 17 tabris17 2018-07-02 15:07:46 +08:00 当然是职责分离呀 |
18 crawl3r 2018-07-02 16:18:53 +08:00 ![]() 如果只是简单的页面,比如就是抓取独立的 Url,而且抓的数据量非常大,或者解析工作非常大(比如搜索引擎),抓取与解析分开会好点; 如果抓取逻辑比较复杂,比如要抓取 c 页面,要经过 a->b->c,那最好写在一块,因为如果解析逻辑分开的话,你要写 3 个有强相关的解析代码,从部署与维护的角度看太复杂了。 |
![]() | 19 zdnyp 2018-07-02 17:57:17 +08:00 我们是放一起的。只保存清洗过的内容。如果需要调试的话,就找原网页 url 调... |
![]() | 20 anyfucker 2018-07-03 11:25:34 +08:00 我觉得抓取和解析分开。 最好是做成异步,把抓取的数据放在全局队列里,解析的进程另外单独处理,一方面有助于架构分离,另一方面分开的逻辑便于将来横向扩展。 https://tweetyf.org/p/359 我也写过一些,不过后来没有时间搞完,希望有时间可以和楼主多交流爬虫和搜索引擎的只是。 |
21 teaser 2018-07-03 13:41:42 +08:00 分开更好 |