python - 删除从 find_all 返回的空列表
问题描述
我遇到了一个我无法解决的错误,尽管有类似的问题,但没有一个解决方案能帮我解决这个问题,所以我决定问这个问题:
我正在尝试在用户传记中为电子邮件抓取网站,如果 UserInfo 包含它应该返回的电子邮件,但我收到的是一个空列表 []。
我搜索了几个答案以摆脱空列表,但没有一个成功
以下是部分代码:
email_list = []
email=None
while email == None:
if soup.find_all(class_="UserInfo "):
for my_tag in soup.find_all(class_="UserInfo "):
emails = re.findall(EMAIL_REGEX, my_tag.text)
print (emails)
if emails != []: # if tag is empty
if emails:
email = emails[0]
print(email)
email_list.append(email)
print(email_list, "1")
break
else:
email=None
print("None 1 in User Info")
这是 HTML 的一部分: UserInfo 类可以重复,但它们都可能缺少电子邮件:
<div class="UserInfo ">
<div>
<div class="ReadMore">text</div>
<a class="UserInfo-readMoreOrLessText">Read Less</a>
</div>
</div>
我尝试了以下但没有奏效:
email = [x for x in emails if x]
print(email)
它回来了
[]
我也试过
if not emails: # if tag is empty
emails.decompose()
print(emails)
但是回来了
AttributeError: 'list' object has no attribute 'decompose'
解决方案
如果您设置emails
为None
ifemails
是一个空列表怎么办。
emails = None if not emails else emails
if not emails:
break
# Other logic here.
推荐阅读
- javascript - amcharts 堆积柱形图中的工具提示放置
- react-native - 错误:文本字符串必须在
组件,出现在 android 中,但在 web 上可以正常工作 - gitlab - Gitlab CI:在 Kaniko Job 中执行自己的脚本
- r - 根据年份找到加权平均值
- apache-spark - 在 spark 3.0.0 中无法触发 AQE 的倾斜连接优化
- java - BeanUtilsBeans copyProperties 不复制任何字段
- android - savedInstanceState 在第一次应用程序关闭后为空,但在第二次关闭后不为空
- html - How to apply to @font-face?
- qt - 在使用 LLVM 的 Windows 上的 QtCreator 编译中没有规则来制作目标
- php - 如果记录不存在并从数据库中获取数据,则需要插入 sql