如何检测网页上的导航(菜单)

kar*_*tan 4 html python xhtml

所以我正在编写这个打开页面的程序,它应该做的一件事是检测网页有多少导航(菜单),主导航有多长(多少元素),导航元素中的平均文本等等...

无论如何,我在检测菜单时遇到了一些问题。我认为有两种方式对网络导航进行编码:

1. <ul><li><a>Home</a><li><a>Products</a></li>...</ul>
2. <div><a>Home</a><a>Product</a>...</div>
Run Code Online (Sandbox Code Playgroud)

所以如果我找到这个结构,我知道(或者我应该说“我认为”)它的导航。但这不是防弹的。我得到了很多未命中。

那么 any1 有没有更好的想法来检测网页上的导航?

Mic*_*jer 5

没有通用的解决方案。您需要实施一些启发式方法。我会尝试这样的:

  1. 获取递归限制=1的所有站点页面(如 wget -r -l1 http://example.com/
  2. 对于每个内部页面,在该页面上保留一组内部链接
  3. 得到所有集合的交集。

通过这种方式,您将获得一组恒定的内部链接,在大多数情况下,这些链接将是站点的“菜单”。