如果xtag值为空,则在Python中使用selenium进行Webscraping返回NaN

2024-04-25 07:39:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个脚本,它循环通过几个具有相同布局的url。我需要捕获某个字段的数据,该字段的所有url都具有相同的xpath。此信息存储在列表中,以下是我的代码:

field_list = [ ]
fields =driver.find_elements_by_xpath('xpath')
for f in fields:
     field_list.append(f.text)

但是在某些页面上,字段是空的。你知道吗

如果Iprint len(field_list)输出是13 但如果我这么做了

for f in field_list:
    print(f)

输出为11行

基本上,未填写的字段会附加到末尾的列表中。有没有办法将它们转换为none类型或NaN?你知道吗


Tags: 数据代码in脚本信息urlfieldfields
1条回答
网友
1楼 · 发布于 2024-04-25 07:39:38

我将检查元素中是否存在文本,将其附加到列表之前,例如:

field_list = []
fields = driver.find_elements_by_xpath('xpath')
for f in fields:
    fText = f.text
    if not fText.strip(): field_list.append(None)
    else: field_list.append(fText)

如果希望在存储值之后对列表进行评估,可以执行以下操作:

field_list = []
fields = driver.find_elements_by_xpath('xpath')
for f in fields:
    field_list.append(f.text)

new_list = [x if x.strip() else None for x in field_list]

for f in new_list:
    print(f)

最后打印的输出应该仍然是13个对象,但是空的对象使它看起来像11,假设有2个空字符串。如果您想知道是否有空的文本对象被刮走,那么将空字符串转换为None类型对于以后打印和查看数据应该更好。你知道吗

相关问题 更多 >