所以我试图从站点收集所有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)