python - 在 Python 中使用 selenium 进行 Webscraping - 如果 xtag 值为空,则返回 NaN
问题描述
我有一个脚本,它遍历几个具有相同布局的 URL。我需要为所有 URL 都具有相同 xpath 的某个字段捕获数据。此信息存储在列表中,这是我的代码:
field_list = [ ]
fields =driver.find_elements_by_xpath('xpath')
for f in fields:
field_list.append(f.text)
但是,在某些页面上,该字段为空。
如果我print len(field_list)
输出是 13 但如果我这样做
for f in field_list:
print(f)
输出为 11 行
基本上未填写的字段会附加到最后的列表中。有没有办法将它们转换为无类型或 NaN?
解决方案
在将元素附加到列表之前,我会检查元素中是否存在文本,例如:
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)
最后 print的输出应该仍然是 13 个对象,但是假设有 2 个空字符串,空对象使它看起来像 11。None
如果您想知道是否有空文本对象被刮掉,将空字符串转换为类型应该更好地打印和查看数据。
推荐阅读
- libgdx - glyphLayout 中的 targetWidth 是什么
- firebase - AngularFireDatabase 不检索数据
- jenkins - 詹金斯偶尔不会拿起svn代码的提交源
- java - 如何在Java中查找队列中元素的最后一次出现
- html - 为什么锚标签占用空间并将所有内容推到右侧?
- html - 删除 iframe 下面的空白
- git - 如何列出具有特定格式或过滤器的 git 标签
- python - AttributeError:模块'pkg_resources'没有属性'safe_name'django频道redis
- node.js - 如何在MERN中组织后端和前端的文件结构
- python - Pandas 的 DataFrame 合并意外值