python-3.x “NoneType”对象在尝试提取卷影根内的数据文本时没有属性“find_element”

ddarikpa  于 2022-12-14  发布在  Python
关注(0)|答案(1)|浏览(216)

尝试刮这个网站与 selenium ,不幸的是,文本我想提取的是在影子根dom,像其中2(提供截图https://prnt.sc/ly-T8RLVxr91)属性im试图得到的是“用户-主题-标题”和“用户-主题-行-btm”
这是我代码

def expand_shadow_element(element):
    shadow_root = driver.execute_script('return arguments[0].shadowRoot', element)
    return shadow_root


driver = webdriver.Chrome(ChromeDriverManager().install())
shadow = Shadow(driver)
z = shadow.chrome_driver.get('https://www.alodokter.com/komunitas/topic/penyebab-dan-cara-mengatasi-sakit-di-bawah-pusar')

html = driver.page_source
soup = BeautifulSoup(html, "html.parser")

top = driver.find_element(By.ID, 'topic-top')
topbt = expand_shadow_element(top)
btom = topbt.find_element(By.CSS_SELECTOR, 'user-topic-top')
for t in btom:
    print(t.text)

我得到的错误

'NoneType' object has no attribute 'find_element'

那么我如何访问影子根dom并提取文本呢?我希望得到这些文本https://prnt.sc/yp5H_KteB8tm
我很抱歉,如果我的问题太长,我有点新的编程。任何帮助将不胜感激。

cgyqldqp

cgyqldqp1#

这里的topic-top元素不是shadow-root元素。这就是为什么在它上面应用expand_shadow_element方法什么也不返回的原因。所以topbt变成了一个'NoneType'对象。

相关问题