我们介绍完正则表达式以后,再次进入到我们的爬虫项目。
我们现在是获取了城市列表的网页源码
我们来写一个解析城市列表的函数printCityList
func printCityList(contents []byte) {
// [^>]*> 这个意思是如果你不是>我就会匹配进来
// MustCompile里面的内容是从源码获取处理过的
// <a href="http://www.zhenai.com/zhenghun/baodin" class="">保定</a>
re := regexp.MustCompile(`<a href="(http://www.zhenai.com/zhenghun/[0-9a-z]+)"[^>]*>([^<]+)</a>`)
matches := re.FindAllSubmatch(contents, -1)
// FindAllSubmatch 返回的是[][][]byte,所以我们需要循环出来,在取对应的索引
for _, m := range matches {
fmt.Printf("City: %s, URL: %s\n", m[2], m[1])
}
fmt.Printf("Match found: %d\n", len(matches))
}
好的,现在我们来调用一把这个函数
printCityList(all) // main函数的最后
这样的话我们就可以拿到城市对应的url与名称了,
ok,走到这里你已经获取了一些重要信息了,万丈高楼平地起,这只是刚刚开始!!!继续往下走吧!!!