我正在嘗試從 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 回答
- 0 關注
- 442 瀏覽
添加回答
舉報
0/150
提交
取消