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 1
分开。
不仅是调试的问题。 保存原始的 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 1
如果只是简单的页面,比如就是抓取独立的 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
分开更好
|