您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

BeautifulSoup提取节点的XPATH或CSS路径

BeautifulSoup提取节点的XPATH或CSS路径

这其实很容易提取简单的CSS / XPath的。这是相同的lxml的LIB给你。

def get_element(node):
  # for XPATH we have to count only for nodes with same type!
  length = len(list(node.prevIoUs_siblings)) + 1
  if (length) > 1:
    return '%s:nth-child(%s)' % (node.name, length)
  else:
    return node.name

def get_css_path(node):
  path = [get_element(node)]
  for parent in node.parents:
    if parent.name == 'body':
      break
    path.insert(0, get_element(parent))
  return ' > '.join(path)

soup = bs4.BeautifulSoup('<div></div><div><strong><i>bla</i></strong></div>')
assert get_css_path(soup.i) == 'div:nth-child(2) > strong > i'
CSS 2022/1/1 18:30:39 有721人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶