如何使用BeautifulSoup识别各个网站的菜单?

发布于 2024-12-09 06:21:31 字数 428 浏览 0 评论 0原文

我想识别网站中具有主菜单div元素。

我正在考虑的方法:

  1. 使用 Beautiful Soup
  2. Menus 解析 HTML 通常具有最高的链接 密度即锚标记计数或查找带有所有 li 标记的 ul 有链接

上述方法可能会失败,因为在各种网站中 - 页脚元素可能具有较高的链接密度(例如:www.langoor.com )

另一种方法是在 div 元素的“id”或“class”属性中查找关键字“menu”。这是一种非常昂贵的方法,因为我们最终可能会搜索很多单词。

如果您能帮助我找到解决这个问题的正确方向,那就太好了。 谢谢!

I want to identify the div element which has the main menu in a website.

The approach I am thinking of:

  1. Parse HTML using Beautiful Soup
  2. Menus usually have the highest link
    density i.e anchor tag count or look for a ul with all li tags
    having links

The above approach can fail because in various websites - the footer element can have a high link density (Ex: www.langoor.com)

Another approach is to look for the keyword "menu" in "id" or "class" attributes of the div elements. This is a very expensive approach as we might end up searching for many words.

It would be great if you could help me look in the right direction to solve this problem.
Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

笑饮青盏花 2024-12-16 06:21:31

这相当困难,因为 html 中的菜单不是标准化的。在第一个或第二个 div(页脚之前)中使用关键字(“菜单”等)在 DOM 树中搜索 ul/li - 这些位置通常用于菜单。或者等待 html5 和 nav 标签。

It's quite hard, because menus in html aren't standarized. Search in DOM tree for ul/li with keywords ("menu", etc.) in first or second div (before footer) - these places are common used for menus. Or wait for html5 and nav tag.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文