Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python迭代数组以构建电子邮件正文_Python_Arrays_Email_Web Scraping_Beautifulsoup - Fatal编程技术网

使用python迭代数组以构建电子邮件正文

使用python迭代数组以构建电子邮件正文,python,arrays,email,web-scraping,beautifulsoup,Python,Arrays,Email,Web Scraping,Beautifulsoup,我正在使用Python和BeautifulSoup从一个网站上抓取元素(div),并通过电子邮件将它们发送给我自己 它刮取网站,获取元素,并用这些元素组成一个数组 如何迭代此数组并将元素放入电子邮件正文中 我尝试的是: def sendEmail(): fromaddr = "<email_address>" toaddr = "<email_address>" msg = email.message.Message()

我正在使用Python和BeautifulSoup从一个网站上抓取元素(
div
),并通过电子邮件将它们发送给我自己

它刮取网站,获取元素,并用这些元素组成一个数组

如何迭代此数组并将元素放入电子邮件正文中

我尝试的是:

    def sendEmail():

     fromaddr = "<email_address>"
     toaddr = "<email_address>"
     msg = email.message.Message()
     msg['From'] = "<sender>"
     msg['To'] = toaddr
     msg['Subject'] = "<subject>"

     email_content = """
    <html>
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <title>Title</title>
      <style type="text/css">
        .some-style {
           some-css: rules;
        }
      </style>
    </head>
    <body> 

      <div class='container'>
        """ + 
    for i in xrange(0,len(my_aray)):
      (my_array[i].prettify()).encode('utf-8')
      + """
      </div>
    </body>
   </html>
    """
      msg.add_header('Content-Type','text/html')
      msg.set_payload(email_content)
      server = smtplib.SMTP('<smtp.server>', <port>)
      server.ehlo()
      server.starttls()
      server.login(fromaddr, "<password>")

      text = msg.as_string()
      server.sendmail(fromaddr, toaddr, text)
      server.quit()
def sendmail():
fromaddr=“”
toaddr=“”
msg=email.message.message()
msg['From']=“”
msg['To']=toaddr
msg['Subject']=“”
电子邮件_content=“”
标题
.某种风格{
一些css:规则;
}
""" + 
对于x范围内的i(0,len(my_aray)):
(my_数组[i].prettify()).encode('utf-8')
+ """
"""
msg.add_标题('Content-Type','text/html'))
msg.set\u有效负载(电子邮件内容)
服务器=smtplib.SMTP(“”,)
server.ehlo()
server.starttls()
server.login(fromaddr,“”)
text=msg.as_string()
sendmail(fromaddr,toaddr,text)
server.quit()
当然,这部分不起作用:

<div class='container'>
    """ + 
for i in xrange(0,len(my_array)):
  (my_array[i].prettify()).encode('utf-8')
  + """
  </div>

""" + 
对于x范围内的i(0,len(我的_数组)):
(my_数组[i].prettify()).encode('utf-8')
+ """
如果我以每个元素为例,比如
“+my_数组[0]+my_数组[1]+”
,它就可以工作。问题是数组中的元素数量可能会有所不同


Thx.

首先尝试形成动态html内容,然后将其附加到电子邮件内容中

Ex:

html = ""
for i in my_aray:
    html += """<div class='container'>{0}</div><br>""".format(i)

email_content = """
    <html>
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <title>Title</title>
      <style type="text/css">
        .some-style {{
           some-css: rules;
        }}
      </style>
    </head>
    <body> 
        {0}
    </body>
   </html>
    """.format(html)

print(email_content)
html=“”
因为我在我的家乡:
html+=“{0}
”。格式(i) 电子邮件_content=“” 标题 .某种风格{{ 一些css:规则; }} {0} “”。格式(html) 打印(电子邮件内容)
如果我必须迭代多个数组,它是如何工作的?如果我刮掉两个(或多个)网站,并用每个网站的元素创建两个(或多个)数组,我如何迭代它们以将其放入电子邮件正文中?例如,我有
my_array_1
my_array_2
,我想构建一封写标题的电子邮件,然后
my_array_1
的内容比另一个标题和
my_array_2
的内容更重要。