html - 无法使用 goquery : some nodes are missing 收集 Google 搜索结果的所有节点

标签 html go web-scraping goquery

我正在尝试使用 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/

相关文章:

python - 如何使用python抓取aspx呈现的页面

javascript - 如何动态改变UI Chip的大小

javascript - 使用主干js的动态HTML渲染在点击事件后不替换原始内容

go - 范围运算符是否保证顺序?

go - 通过引用更改 slice

python - 如何在 Python 中使用 VPN 进行网页抓取?

javascript - 侧边导航 Bootstrap

html - 阿拉伯字符在谷歌浏览器中单独显示

去测试 foo - 找不到包 foo

javascript - 无法从 GET 请求获取 HTML