首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >BeautifulSoup和处理文本结果的问题

BeautifulSoup和处理文本结果的问题
EN

Stack Overflow用户
提问于 2019-02-21 04:19:38
回答 1查看 35关注 0票数 0

我用BeautifulSoup抓取了一个网站,在打印结果后,我得到了2行文本,然后是2行换行符,然后是另外2行文本。太完美了。

但是,当我将这段文本-行-文本插入电子邮件正文时,只出现了最后两行文本。为什么前两行文本和两个换行符消失了?

这是我的代码:备注。我已经删除了发件人和收件人的电子邮件地址和密码。

非常感谢!

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2019-02-21 04:28:28

代码语言:javascript
复制
for hit in soup.find_all("div", class_="name"):
    msg1 = hit.get_text()

每次执行此循环时,它都会丢弃msg1之前的内容。循环完成后,msg1将只包含最后一次命中。

试着这样做:

代码语言:javascript
复制
msg1 = ""
for hit in soup.find_all("div", class_="name"):
    msg1 = msg1 + hit.get_text()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54794619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档