为了账号安全,请及时绑定邮箱和手机立即绑定

从 Google 搜索结果页面中提取 URL

从 Google 搜索结果页面中提取 URL

Go
杨__羊羊 2021-10-11 13:28:03
我正在尝试从 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
提交
取消
意见反馈 帮助中心 APP下载
官方微信