func main() { flag.Parse() // 创建新 ZergClient zc, err := zerg_client.NewZergClient(*endPoints, *serviceName) if err != nil { log.Fatal(err) } defer zc.Close() // 调用 client.Crawl 前必须先调用 Get 命令获取 CrawlClient,通过 url 的一致性哈希进行分配 // 不同的 url 要分别调用 Get 得到不同的 CrawlClient if crawlClient, err := zc.Get(*url); err == nil { // RPC 调用 request := pb.CrawlRequest{ Url: *url, Timeout: 10000, // 超时 10 秒 CrawlFrequency: *freq, } response, err := crawlClient.Crawl(context.Background(), &request) if err != nil { // 处理异常 log.Fatal(err) } // 处理返回结果 log.Printf("metadata = %+v", response.Metadata) log.Printf("page content length = %d", len(response.Content)) } }
func main() { flag.Parse() if *url == "" { log.Fatal("--url 参数不能为空") } dcc, err := zerg_client.NewZergClient(*endPoints, *serviceName) if err != nil { log.Fatal(err) } request := pb.CrawlRequest{Url: *url, Timeout: 10000, CrawlFrequency: *freq} log.Printf("开始抓取") for i := 0; i < 10; i++ { client, err := dcc.Get(*url) if err != nil { log.Fatal(err) } response, err := client.Crawl(context.Background(), &request) if err != nil { log.Fatal(err) } log.Printf("%+v", response.Metadata) log.Printf("%d", len(response.Content)) } }
func main() { flag.Parse() // 创建新 ZergClient zc, err := zerg_client.NewZergClient(*endPoints, *serviceName) if err != nil { log.Fatal(err) } defer zc.Close() // 调用 zerg 服务 request := pb.CrawlRequest{ Url: *url, Timeout: 10000, // 超时 10 秒 RecrawlTtl: *ttl, Method: pb.Method(pb.Method_value[*method]), } response, err := zc.Crawl(&request) if err != nil { // 处理异常 log.Fatal(err) } // 处理返回结果 log.Printf("metadata = %+v", response.Metadata) log.Printf("page content length = %d", len(response.Content)) }