BeautifulSoup和处理文本结果的问题

时间:2019-02-20 20:19:38

标签: python text beautifulsoup insert

我使用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)

1 个答案:

答案 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 |
   +------+---+