首页 > 解决方案 > 仅使用 selenium 抓取文本

问题描述

我正在尝试使用以下网站中提到的硒来抓取文本(动态)。我在整个互联网上进行了搜索,但是当文本出现在单独的 div/p/span 或任何其他标签中时,我得到了如何抓取文本。如果您有任何想法,请提供帮助。

<div class='css-87uc0g e1tk4kwz1'>
    Text
    <span>
        4.5 
        <span> ::before </span>
    </span>
<div>

我想在这里只提取文本,但跨度标签不允许它。

注意:文本的值是动态的。

标签: pythonseleniumweb-scrapingwebdriver

解决方案


使用以下查找div元素xpath并使用javascript executor并获取第一个子值。

element=driver.find_element_by_xpath("//div[.//span[contains(.,'Rating')]]")
print(driver.execute_script('return arguments[0].firstChild.textContent;', element).strip()) 

或者您可以简单地替换该值。

element=driver.find_element_by_xpath("//div[.//span[contains(.,'Rating')]]")
print(element.text.replace(driver.find_element_by_xpath("//span[contains(.,'Rating')]").text,'').strip())

推荐阅读