python - 在 selenium 中使用 python 循环
问题描述
我编写了一个脚本来从搜索页面中提取元素。从搜索结果中提取标题、价格和链接。我需要为页面上的所有 25 个结果捕获这些元素。
我正在使用 Xpath,每个结果都有一个递增的 div 编号。所以我想使用一个循环,以便它可以将增量 div 编号添加到我的 3 个提取中的每一个中。
我是循环新手,不知道如何使用循环在 Xpath 中插入增量数字。对于搜索结果的标题,我使用以下代码:
title = driver.find_element_by_xpath("//*[@id='search']/div[1]/div[2]/div/span[3]/div[1]/div[1]/div/div/div/div[2]/div[2]/div/div[1]/div/div/div/h2/a/span").text
这将打印第一个搜索结果的标题。
对于下一个结果,下面的 Div 增加 1。示例:
第一个结果:
//*[@id="search"]/div[1]/div[2]/div/span[3]/div[1]/div[1]
第二个结果是:
//*[@id="search"]/div[1]/div[2]/div/span[3]/div[1]/div[2]
第三个结果是:
//*[@id="search"]/div[1]/div[2]/div/span[3]/div[1]/div[3]
依此类推,总共有 25 个结果。
如何在 python 中使用循环将特定的 div 增加一,直到达到 25?
解决方案
应该这样做,
ResultsCount = 25
for i in range(ResultsCount):
title = driver.find_element_by_xpath("//*[@id='search']/div[1]/div[2]/div/span[3]/div[1]/div["+str(i+1)+"]/div/div/div/div[2]/div[2]/div/div[1]/div/div/div/h2/a/span").text
print(title)
推荐阅读
- java - reactor.core.publisher.FluxPublishOn$PublishOnSubscriber 导致的内存泄漏
- angular - @firebase/firestore:Firestore (5.0.4):无法访问 Cloud Firestore 后端。后端在 10 秒内没有响应
- javascript - 下载适用于所有浏览器的 PDF
- java - 是否有任何官方 jar 文件可用于将 EDI X12(HIPPA) 转换为 JSON 格式
- java - 如何在不解析日志文件的情况下获取 Kafka 连接状态?能够对“身份验证期间与节点的连接终止”采取措施。
- javascript - 创建会话超时功能,可以显示计时器并在角度超时时重定向到上一页
- utf-8 - perl6 Malformed UTF-8 导致程序崩溃
- c# - 在 Roslyn Binder 阶段会发生什么?
- python - 如何创建只有用户可以看到而不是管理员可以看到的输入字段?
- c++ - 为什么当它是 lambda 时我需要传递一个比较器来构造一个 priority_queue,而不是当它是 std::greater 时?