【发布时间】:2020-12-02 00:07:24
【问题描述】:
我有一个代码将电子邮件地址列表加载到我的电子邮件发件人中,通常我在代码中使用 HTML 代码和纯文本(多部分)发送它,但我想从 . txt / .html 文件改为本地。
这样我可以更好地组织它,代码也会更少。
我在这里尝试使用 pd.read_html,就像 pd.read_excel 适用于我正在上传的列表一样,但我无法让它工作。
代码如下:
import pandas as pd
import time
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import smtplib
email_list = pd.read_excel('/home/seniori/Documents/Folder/test.xlsx')
template = pd.read_html('/home/seniori/Documents/Folder/test.html')
emails = email_list['EMAIL']
my_list = email_list['EMAIL'].tolist()
print(my_list)
msg = MIMEMultipart()
msg['From'] = "email@example.com"
msg['Subject'] = "Subject"
message = template
message2 = "plain text"
msg.attach(MIMEText(message,'html'))
msg.attach(MIMEText(message2,'plain'))
这是错误:
>>> email_list = pd.read_excel('/home/seniori/Documents/Leadlists/UK/test.xlsx')
>>> template = pd.read_html('/home/seniori/Documents/Leadlists/UK/test.html')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/seniori/anaconda3/lib/python3.8/site-packages/pandas/io/html.py", line 1085, in read_html
return _parse(
File "/home/seniori/anaconda3/lib/python3.8/site-packages/pandas/io/html.py", line 915, in _parse
raise retained
File "/home/seniori/anaconda3/lib/python3.8/site-packages/pandas/io/html.py", line 895, in _parse
tables = p.parse_tables()
File "/home/seniori/anaconda3/lib/python3.8/site-packages/pandas/io/html.py", line 213, in parse_tables
tables = self._parse_tables(self._build_doc(), self.match, self.attrs)
File "/home/seniori/anaconda3/lib/python3.8/site-packages/pandas/io/html.py", line 545, in _parse_tables
raise ValueError("No tables found")
ValueError: No tables found
非常感谢您对此的帮助。提前致谢!
【问题讨论】:
-
HTML 文件中有表格吗?这是 pandas 期望在 HTML 中定义表格的方式:“此函数搜索
元素,并且仅搜索
和 行以及 元素中的每个 或 元素桌子。” -- 来自 pandas API 文档
标签: python html pandas email smtplib