尝试提取id的一部分时出现问题



所以我试图从站点收集所有ids;提取物";他们的数字在那个网站上看起来是这样的:

<div class="market_listing_row number_490159191836499" id="number_490159191836499">
<div class="market_listing_row number_490159191836499" id="number_490159191836499">
<div class="market_listing_row number_490159170836499" id="number_490159170836499">

因此,我使用xpath找到了所有这些元素,并确保打印出该列表的长度(以及测试时其中的所有元素,但删除了这部分代码),所以我确信它工作并从现场收集所有50种不同的元素。

elements = driver.find_elements_by_xpath('//*[starts-with(@id, "number_") and not(contains(@id, "_name")) ]') 

print("List 2 lenght is:", len(elements))

但当我试图列出没有";数字_;这个id从我有问题开始。我用get_attribute("id")创建的名为id的列表只是一个id(例如,编号_490159170836499),重复了22次(它的长度是那个id的长度,所以它必须对它做些什么)。list_of_ids按预期工作,结果是490159170836499,但它只有一个元素(我猜是因为只有那个数字重复)。这是我使用的代码:

for x in elements:
id = x.get_attribute("id")
list_of_ids = re.findall("d+", id)

我还使用此代码在站点上打印了所有的ids,这样我就可以确信elements列表中包含了所有这些,并且get_attribute正在工作。

for ii in elements:
print(ii.get_attribute("id"))

为了清楚起见,我做了import re

另一种猜测:

import re
ids = []
for x in elements:
id = x.get_attribute("id")
ids.append(re.search("d+",id)[0])
print(ids)

您也可以使用split方法。

for x in elements:
id = x.get_attribute("id")
a =id.split("_")[1]
print(a)

最新更新