在Python中使用selenium进行Webscraping-如果xtag值为空,则返回NaN
我有一个脚本,它循环通过几个布局相同的URL。我需要捕获某个字段的数据,该字段的所有URL都具有相同的xpath。此信息存储在列表中,以下是我的代码:在Python中使用selenium进行Webscraping-如果xtag值为空,则返回NaN,python,python-3.x,selenium,web-scraping,Python,Python 3.x,Selenium,Web Scraping,我有一个脚本,它循环通过几个布局相同的URL。我需要捕获某个字段的数据,该字段的所有URL都具有相同的xpath。此信息存储在列表中,以下是我的代码: field_list = [ ] fields =driver.find_elements_by_xpath('xpath') for f in fields: field_list.append(f.text) 但是,在某些页面上,该字段为空 如果I打印len(字段列表)输出为13 但如果我这样做了 for f in field_l
field_list = [ ]
fields =driver.find_elements_by_xpath('xpath')
for f in fields:
field_list.append(f.text)
但是,在某些页面上,该字段为空
如果I打印len(字段列表)
输出为13
但如果我这样做了
for f in field_list:
print(f)
输出为11行
基本上,未填写的字段会附加到末尾的列表中。有没有办法将它们转换为none类型或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)
最后打印的输出仍应为13个对象,但如果有2个空字符串,则空对象使其看起来像11个对象。如果您想知道是否有空的文本对象被刮去,那么将空字符串转换为
None
类型应该更适合以后打印和查看数据。欢迎使用。为什么只有文本不是“无”时才能添加到列表中。