请问这两句是什么意思

来源: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

我这一块也迷糊了:( 

看到这个提问和回答后 还是有些模糊,感觉没能理解透

0
0

ccmouse

2020-08-02

第二个关于items的疑问,是为了之后的存储做准备。打印不花时间,但是存储会慢,如果在main goroutine里存储,会卡住整体爬取过程。所以开一个goroutine来负责存储。这里存储还没实现,只是用打印来证明一下我们的逻辑走通了。

0
0

ccmouse

2020-08-02

ParserFunc是一个函数。对首页的爬取结果,我们知道是一堆城市,对应每个城市,有一个url,以及CityParser。而对于单独的城市页,我们会发现很多人的页面和城市的页面,对于人的url,我们要用ProfileParser,对于城市url,我们要用CityParser。

然而在engine中,我们不希望关心这是人的url还是城市url,反正就调用ParserFunc函数就行。而ParserFunc函数已经在Request产生过程中被具体设置。

0
0

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程