首页 > 解决方案 > 在 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?

标签: pythonhtmlseleniumloopsselenium-webdriver

解决方案


应该这样做,

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)

推荐阅读