如何使用BeautifulSoup识别各个网站的菜单?
我想识别网站中具有主菜单的div元素。
我正在考虑的方法:
- 使用 Beautiful Soup
- 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:
- Parse HTML using Beautiful Soup
- 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这相当困难,因为 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.