首页 > 解决方案 > 无法用goquery收集谷歌搜索结果的所有节点:部分节点丢失

问题描述

我正在尝试使用 goquery 库在 GoLang 中收集谷歌搜索页面的结果。为了实现这一点,我正在使用 goquery 收集 goquery 选择的所有节点。问题是 Find("*") 返回的选择似乎不包含 HTML 文档的所有节点。问题:该方法是否收集具有整个树结构的所有节点?如果没有,有没有办法把它们全部收集起来?

我尝试使用应用于整个文档选择的 goquery Find("*") 方法。因此具有某些属性的节点不会被返回,尽管它们在 HTML 文档中。例如,节点不被识别

alltags := doc.Find("*") //doc 是带有 Google 搜索的 HTML 文档

选择不包含带有 class="srg" 的 div 标签。这同样适用于其他类值,例如“bkWMgd”、“rc”。

标签: htmlgoweb-scrapinggoquery

解决方案


这以前发生在我身上。我试图用 python 漂亮的汤包进行网络抓取,同样的事情正在发生。

后来发现,在尝试获取它时返回的 html 标记实际上是服务器在找到机器人后返回的标记。我通过设置User-Agentto解决了这个问题Mozilla/5.0

希望这有助于您寻求解决这个问题。您可以首先更新已执行的获取请求的代码。


推荐阅读