试图用硒刮这个网站,不幸的是,我想提取的文本是在影子根dom内,就像其中的2个(提供截图https://prnt.sc/ly-T8RLVxr91)我试图获得的属性是"user-topic- title "one_answers"user-topic-line-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)
error I got
'NoneType' object has no attribute 'find_element'
那么我如何访问阴影根dom并提取文本呢?我希望得到这些文本https://prnt.sc/yp5H_KteB8tm
我很抱歉,如果我的问题太长了,我对编程有点陌生。如有任何帮助,不胜感激。这里的topic-top
元素没有影子根元素。这就是为什么对它应用expand_shadow_element
方法没有返回任何东西。这样,topbt
就变成了一个'NoneType'对象。