javascript - 如何从具有属性 style="display:none; 的元素中提取文本;
问题描述
那部分的HTML是:
<div class="review-small-text">
<span class="stars-rate">
<span property="starsRating">
<i class="fa fa-star-yellow fa-star"></i>
<i class="fa fa-star-yellow fa-star"></i>
<i class="fa fa-star-yellow fa-star"></i>
<i class="fa fa-star-yellow fa-star"></i>
<i class="fa fa-star-yellow fa-star"></i>
</span>
</span>
<span property="reviewRating" typeof="Rating" style="display:none;">
<span property="ratingValue">5</span>
<span property="bestRating">5</span>
<span property="worstRating">0</span>
</span>
<span property="itemReviewed" typeof="Service" class="">Liposuction</span> </div>
我正在尝试使用 selenium 提取特定评论的第二个 span 的ratingValue,并且我尝试使用这个 css 选择器来提取该值:
'div.review-small-text>span:nth-of-type(2)>span:nth-of-type(1)'
但它给了我一个空字符串。 这个也试过
'div.review-small-text>span:nth-child(2)>span:nth-child(1)'
所以我认为问题不在于css-selector。不显示在这里会造成问题。 有没有可能提取该值的方法?
到目前为止我尝试过的 Python 源代码是:
from selenium import webdriver
import time
url = "myurlhere"
driver = webdriver.Chrome()
driver.get(url)
time.sleep(3)
all_reviews_listings = driver.find_elements_by_xpath("//div[@id='tab_reviews']/div[@class='provider_all_Reviews']/div[@id='pnlReviews']/div")
for review in all_reviews_listings:
review_rating = review.find_element_by_css_selector('div.review-small-text>span:nth-of-type(2)>span:nth-of-type(1)').text
print("Review Rating: ", review_rating)
解决方案
这是获取 ratingValue 的 css。
使用 JavaScript:
review_rating = driver.execute_script("""return document.querySelector(".review-small-text > span[property='reviewRating'] > span[property='ratingValue']").textContent""")
没有 JavaScript:或者你也可以这样做。
driver.find_element_by_css_selector(".review-small-text > span:nth-child(2) > span[property='ratingValue']").get_attribute("textContent")
推荐阅读
- android - 切换导航抽屉时如何调用函数?
- embedded - 在我取消配对后,如何确保我的 BLE 外围设备 (NRF52832) 再次重新连接?
- javascript - 插入引导模式的 HTML 无法正确显示
- apache-spark - 从 Spark 读取时分区 sql 表数据的问题
- mysql - 有没有办法格式化 MySQL 数据类型 TIME?
- sql-server - SQL Server 输出为 XML 全部在一行上
- python - 使用 py2neo 时从 python 实现中的密码查询获取信息?
- email - SPF 记录不工作 - 根本不显示
- python - 读入 tf.dataset 时的一种热编码
- json - 多个 Json 对象导入 SQL Server 表