selenium 变量在for循环Web报废Selify上得不到更新

jbose2ul  于 2022-11-10  发布在  其他
关注(0)|答案(2)|浏览(148)

我正在尝试过滤网络数据,但我的变量没有更新!

for i in range(len(links)):
    cupons = recupTahmin(links[i])
    try:
        for j in range(len(cupons)):
            eventName = cupons[j].find_element(by=By.XPATH, value="//a[@class='eventName ']").text
            eventDate = cupons[j].find_element(by=By.XPATH, value="//div[@class='eventDate']").text
            bahis = cupons[j].find_element(by=By.XPATH, value="//span[@class='type']").text
            tahmin = cupons[j].find_element(by=By.XPATH, value="//span[@class='choice  ']").text
            oran = cupons[j].find_element(by=By.XPATH, value="//div[@class='eventOutcome']").text
            predictions.append(cupon(eventName,eventDate, tahmin, oran, bahis))
    except:
        pass
for j in range(len(predictions)):
    print(vars(predictions[j]))

如果一切正常,我已经检查过杯子了。Cupons是一个网络元素的列表。代码的结果是->我的终端打印镜头(Cuons)*预测i个不同事件的第一个元素。有人能帮帮我吗?我希望它是不稳定的:)

olhwl3o2

olhwl3o21#

看起来您必须使XPath成为相对的。这是通过在XPath表达式前面添加一个点.来实现的,如下所示。
如果没有这个点,驱动程序每次都将从页面顶部搜索匹配项,而当您使用这个点使XPath成为相对元素时,它将从当前元素开始搜索,在本例中为cupons[j]

for i in range(len(links)):
    cupons = recupTahmin(links[i])
    try:
        for j in range(len(cupons)):
            eventName = cupons[j].find_element(By.XPATH, ".//a[@class='eventName ']").text
            eventDate = cupons[j].find_element(By.XPATH, ".//div[@class='eventDate']").text
            bahis = cupons[j].find_element(By.XPATH, ".//span[@class='type']").text
            tahmin = cupons[j].find_element(By.XPATH, ".//span[@class='choice  ']").text
            oran = cupons[j].find_element(By.XPATH, ".//div[@class='eventOutcome']").text
            predictions.append(cupon(eventName,eventDate, tahmin, oran, bahis))
    except:
        pass
for j in range(len(predictions)):
    print(vars(predictions[j]))
3okqufwl

3okqufwl2#

你有没有在上面的某个地方定义预测?

predictions = []

如果它真的落在那里,你检查过例外部分了吗?
如果您愿意,可以使用以下命令更轻松地遍历列表

for c in cupons:
    bahis = c.find_element(...

相关问题