Beautiful Soup 错误:'NavigableString' 对象没有 'get' 属性 - 解决方法
这个错误是由于 element 是一个 NavigableString 对象,而 NavigableString 对象没有 get 方法引起的。\n\n要解决这个问题,你可以在调用 get_css_selector 函数之前,检查 element 是否是 Tag 对象,可以使用 isinstance(element, Tag) 来判断。如果不是 Tag 对象,可以考虑在调用 get_css_selector 之前进行处理,或者在 get_css_selector 函数内部进行判断和处理。\n\n以下是对 get_css_selector 函数进行修改的示例代码:\n\npython\nfrom bs4 import NavigableString, Tag\n\ndef get_css_selector(element):\n if not isinstance(element, Tag):\n return None\n \n selectors = []\n\n while element.parent:\n selector = element.name\n if element.get('id'):\n selector += '#{}'.format(element.get('id'))\n selectors.insert(0, selector)\n break\n elif element.get('class'):\n selector += '.{}'.format('.'.join(element.get('class')))\n selectors.insert(0, selector)\n element = element.parent\n return ' > '.join(selectors)\n\n\n在这个修改后的代码中,首先使用 isinstance(element, Tag) 判断 element 是否是 Tag 对象,如果不是,则直接返回 None。这样可以避免 NavigableString 对象调用 get 方法导致的错误。
原文地址: http://www.cveoy.top/t/topic/qap1 著作权归作者所有。请勿转载和采集!