python - Python Selenium-webdriver:for循环在整个循环中返回列表的第一个元素
问题描述
我正在尝试从 google play 商店检索用户评论相关信息。我有兴趣收集审稿人姓名、审稿人文本、审稿人评分和审稿日期。我正在使用 selenium webdriver 来检索信息。这是我的代码:
baseurl='https://play.google.com/store/apps/details?id=com.zihua.android.mytracks&hl=en&showAllReviews=true'
driver.get(baseurl)
person_info = driver.find_elements_by_xpath("//div[@class='d15Mdf bAhLNe']")
for person in person_info:
name = person.find_element_by_xpath("//span[@class='X43Kjb']").text
review = person.find_element_by_xpath("//div[@class='UD7Dzf']/span").text
print(name)
print(review)
我的代码的问题是它返回审阅者的名字及其在整个循环中的审阅。谁能指导我我在哪里犯了错误?
解决方案
看起来您一次又一次地获得相同的信息,因为每个 xpath-search 从 DOM 的开头开始。你可以做的是用一个(点)开始你的与子相关的xpath,'.'
以便只处理子元素,如下所示
for person in person_info:
name = person.find_element_by_xpath(".//span[@class='X43Kjb']").text
review = person.find_element_by_xpath(".//div[@class='UD7Dzf']/span").text
print(name)
print(review)
推荐阅读
- scikit-learn - Python:正确的命名法
- javascript - const React 的多个参数
- php - MySQL全文搜索和撇号
- python-2.7 - Python Appengine - 调用 Endpoints 工具时出现“ImportError:无法导入名称 OSRNG”
- java - 在父 pom 中定义的属性无法在子 pom 中解析/更新
- jquery - 在对投资组合项目应用 jQuery 过滤器后,单击时滚动到特定 div
- ios - Swift Firebase - 使用文档 UID 获取当前用户以填充列表
- asp.net - 将模型映射到 SQL 视图
- python - 使用 mailgun python API 发送 html 电子邮件时出错
- signal-processing - 为什么 FFT 对不同频率的正弦波表现出不同的行为?