我正在尝试从 Google 搜索页面中获取所有 URL,我认为有两种方法可以做到,但我真的不知道该怎么做。首先,我可以简单地从.r标签中抓取它们并获取href每个链接的属性。但是,这给了我一个非常长的字符串,我必须解析它才能获取 URL。以下是必须解析的内容的示例:https://www.google.com/search?sourceid=chrome-psyapi2&ion=1&espv=2&ie=UTF-8&q=mh4u%20items&oq=mh4u%20items&aqs=chrome.0.0l2j69i59j69i60j0l2.1754jnowumsay=https://youurl?qnowumsay7 .wordpress.com/2015/03/16/the-inventory-and-you-what-items-should-i-bring-mh4u/&sa=U&ei=n8NvVdSvBMOSyATSzYKoCQ&ved=0CEUQFjAL&usg=AFQjCNGyD5lJVqAq我想要的网址是:https://youknowumsayin.wordpress.com/2015/03/16/the-inventory-and-you-what-items-should-i-bring-mh4u/所以我必须在https和之间创建一个字符串&sa,我不是 100% 确定该怎么做,因为 Google 给我的每个非常长的字符串都是不同的大小,所以只需使用切片并将其切割成“x”个字符就不会'工作。其次,在 Google 搜索中的每个链接下方都有绿色文本的 URL。右键单击它并检查元素给出:(cite class="_Rm"在 V 形之间)我不知道如何使用 goquery 查找,因为cite使用我的小函数查找只会给我更多长字符串。这是我的小函数,它目前没有解析就执行第一个选项,并为我提供一长串文本,将我带到搜索页面:func GetUrls(url string) { doc, err := goquery.NewDocument(url) if err != nil { panic(err) } doc.Find(".r").Each(func(i int, s *goquery.Selection) { doc.Find(".r a").Each(func(i int, s *goquery.Selection) { Link, _ := s.Attr("href") Link = url + Link fmt.Printf("link is [%s]\n", Link) }) })}
1 回答
- 1 回答
- 0 关注
- 393 浏览
添加回答
举报
0/150
提交
取消