Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:查找链接的有效方法&x27;s上下文(模板、页脚、页眉、导航、文本…)_Python - Fatal编程技术网

Python:查找链接的有效方法&x27;s上下文(模板、页脚、页眉、导航、文本…)

Python:查找链接的有效方法&x27;s上下文(模板、页脚、页眉、导航、文本…),python,Python,我试图通过编程找出链接的上下文。示例:提取链接时,如果它是导航节(如页脚、页眉)的一部分。。。或者它是一个文本链接。 对我来说,“导航链接”是指位于以下位置的链接: 标题 侧栏导航 菜单 页脚 横向链路 ... 例如,对于本页: 到目前为止,我这样做是为了提取链接: import requests import lxml.html URL = "https://stackoverflow.com/questions/64577372/bootstab4-tab-menu-c

我试图通过编程找出链接的上下文。示例:提取链接时,如果它是导航节(如页脚、页眉)的一部分。。。或者它是一个文本链接。 对我来说,“导航链接”是指位于以下位置的链接:

  • 标题
  • 侧栏导航
  • 菜单
  • 页脚
  • 横向链路 ... 例如,对于本页:
到目前为止,我这样做是为了提取链接:

 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
我的想法是看看父母或祖父母,看看我的链接集中度是否高于规定的阈值

谢谢你的帮助