我使用BeautifulSoup抓取了一个网站,在打印结果后,我得到了2行文本,然后是2行换行符,然后又是2行文本。完美。
但是,当我将这行text-lines-text插入电子邮件正文时,仅出现最后两行文本。为什么前两行文字和两行中断消失了?
这是我的代码: 注意:我已删除了发件人和收件人的电子邮件地址以及密码。
非常感谢!
import bs4 as bs
import urllib
import smtplib
sauce = urllib.request.urlopen('https://webshop.meyerskantiner.dk/shop/2240/take-away/g/23332?date=22-02-2019').read()
soup = bs.BeautifulSoup(sauce, 'lxml')
for hit in soup.find_all("div", class_="name"):
msg1 = hit.get_text()
msg2 = 'Subject: Canteen Intelligence\nHello,\n\nHere is the menu for the week.\n' + '\n\n\n\n' + msg1
conn = smtplib.SMTP('smtp.gmail.com', 587)
conn.ehlo()
conn.starttls()
conn.login('SendersEmail', "password")
conn.sendmail('SendersEmail', ['RecipientsEmail'],msg = msg2.encode('ascii', 'ignore').decode('ascii'))
conn.quit()
print(msg2)
答案 0 :(得分:0)
msg1
每次执行此循环时,它都会丢弃msg1
的先前内容。循环完成后,msg1 = ""
for hit in soup.find_all("div", class_="name"):
msg1 = msg1 + hit.get_text()
将只包含最终匹配。
尝试以下方法:
+------+---+
|Name |age|
+------+---+
|Mona |12 |
+------+---+
|Monika|25 |
+------+---+
|Tomas |3 |
+------+---+
|Ilyas |47 |
+------+---+