python - 仅使用 selenium 抓取文本
问题描述
我正在尝试使用以下网站中提到的硒来抓取文本(动态)。我在整个互联网上进行了搜索,但是当文本出现在单独的 div/p/span 或任何其他标签中时,我得到了如何抓取文本。如果您有任何想法,请提供帮助。
<div class='css-87uc0g e1tk4kwz1'>
Text
<span>
4.5
<span> ::before </span>
</span>
<div>
我想在这里只提取文本,但跨度标签不允许它。
注意:文本的值是动态的。
解决方案
使用以下查找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())
推荐阅读
- php - JQuery/Ajax 的多个数据表大小问题
- enterprise-architect - Enterprise Architect SynchTaggedValues 不起作用
- cassandra - cassandra nodetool:无法连接到“127.0.0.1:7199”
- visual-studio - Visual Studio - 每当我打开 Visual Studio 2017 时,NuGet 包都会不断被删除或删除
- mysql - 简单的 PIVOT 查询引发错误消息
- php - 打开服务器致命错误内存不足
- ios - 领域是否支持 iOS 中的 LIMIT 查询?
- laravel - 如何强制一个独特的规则忽略给定的 id?
- android - 在 Android 复合视图中不接受来自 xml 的 onclick
- angularjs - 将带有 ng-model 的复选框添加到 Object AngularJS