请问这两句是什么意思
来源:15-5 Engine 与 Parser

忘记唱情歌
2020-07-31
parseResult := r.ParserFunc(body)
requests = append(requests, parseResult.Request…)
body应该是爬下来的网页? 然后把body放进 r.ParserFunc 这个结构体是干啥的。
下面的代码
for _, item := range parseResult.Items {
log.Printf(“got item %v”, item)
}
但是,我们这个items中的数据,城市列表。不是在main函数中就调用了parser.ParseCityList,已经存在了吗?
请解惑,谢谢
3回答
-
EnzoLiu
2020-08-17
我这一块也迷糊了:(
看到这个提问和回答后 还是有些模糊,感觉没能理解透
00 -
ccmouse
2020-08-02
第二个关于items的疑问,是为了之后的存储做准备。打印不花时间,但是存储会慢,如果在main goroutine里存储,会卡住整体爬取过程。所以开一个goroutine来负责存储。这里存储还没实现,只是用打印来证明一下我们的逻辑走通了。
00 -
ccmouse
2020-08-02
ParserFunc是一个函数。对首页的爬取结果,我们知道是一堆城市,对应每个城市,有一个url,以及CityParser。而对于单独的城市页,我们会发现很多人的页面和城市的页面,对于人的url,我们要用ProfileParser,对于城市url,我们要用CityParser。
然而在engine中,我们不希望关心这是人的url还是城市url,反正就调用ParserFunc函数就行。而ParserFunc函数已经在Request产生过程中被具体设置。00
相似问题