python - 尝试提取部分 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))
但是当我尝试制作没有“number_”的数字列表时,id 以我有问题。我用 get_attribute("id") 创建的列表id
只是一个 id(例如 number_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
解决方案
您也可以使用拆分方法。
for x in elements:
id = x.get_attribute("id")
a =id.split("_")[1]
print(a)
推荐阅读
- docker - .NET Core - Docker 构建在 global.json 中找不到 SDK 版本
- reactjs - 如何在更新前更新反应中的状态条目并在输入字段中显示其内容?
- yii2 - yii2上用户自定义PK
- azure-data-explorer - Kusto 查询语言:对列求和
- flutter - AppBars 和 Drawers 中的底部导航栏路由
- azure - Azure Synapse:上传 Spark 作业参考文件中的 py 文件目录
- azure-devops - Azure DevOps 保留策略
- reactjs - yandex中如何使用POST方式发送复制请求
- hive - 如何使用 flink sql 客户端从 hive 表中读取数据?
- flutter - 在 Flutter/Dart 中构建引导式对话的最佳方式