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