我正在尝试使用 goquery 库在 GoLang 中收集谷歌搜索页面的结果。为了实现这一点,我正在使用 goquery 收集 goquery 选择的所有节点。问题是 Find("*") 返回的选择似乎并不包含 HTML 文档的所有节点。问题:该方法是否收集具有整个树结构的所有节点?如果没有,有没有办法把它们全部收集起来?
我尝试使用应用于整个文档选择的 goquery Find("*") 方法。因此具有某些属性的节点不会返回,尽管它们在 HTML 文档中。例如,带有的节点无法识别
alltags := doc.Find("*")//doc 是 Google 搜索的 HTML 文档
所选内容不包含带有 class="srg"的 div 标签。这同样适用于其他类值,例如“bkWMgd”、“rc”。
最佳答案
我以前也遇到过这种情况。我试图用 python beautiful soup 包进行网络抓取,同样的事情发生了。
后来发现,试图获取它时返回的 html 标记实际上是服务器在找到机器人后返回的标记。我通过将 User-Agent
设置为 Mozilla/5.0
解决了这个问题。
希望这有助于您解决此问题。 您可以从更新已执行的获取请求的代码开始。
关于html - 无法使用 goquery : some nodes are missing 收集 Google 搜索结果的所有节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56297845/