Python:找出链接上下文(模板,页脚,页眉,导航,文本...)的有效方法

时间:2020-10-28 17:04:47

标签: python

我正在尝试以编程方式找出链接的上下文。示例:提取链接时,如果它是导航节的一部分,例如页脚,页眉...,或者它是文本链接。 对我来说,“导航链接”是位于以下位置的链接:

  • 标题
  • 侧边栏导航
  • 菜单
  • 页脚
  • 侧向链接 ... 例如,此页面: enter image description here

到目前为止,我正在这样做以提取链接:

 import requests
 import lxml.html
 URL = "https://stackoverflow.com/questions/64577372/bootstab4-tab-menu-collapse-like-navbar"
 resp = requests.get(URL)
 tree = lxml.html.fromstring(resp.text)
 tags = tree.xpath("//a[@href]")
 for a in tags :
      context = get_context(a) # should be "navigational or textual"
      print(a.get('href'), context)

 def get_context(tag) :
     threshold=0.8
     parent =  tag.parent() #or grandparent
     parent_text = parent.content_text()
     parent_links_text = [x.content_text() for x in parent.xpath("./a[@href]")]
     parent_links_text = " ".join(parent_links_text)
     
     link_text_ratio = "GET INTERSECTION HERE"
     context = "navigational" if link_text_ratio > threshold else "textual"
     return context

我的想法是看望父母或祖父母,看看我的链接集中度是否高于定义的阈值。

感谢您的帮助

0 个答案:

没有答案