python周末吃什么_python爬虫第10关项目周末吃什么(每周五自动爬取下厨房本周最受欢迎的菜谱)...

目标:我们曾在第3关爬取了下厨房网站中的“本周最受欢迎菜谱”,现在,我们完善这个程序,让程序在每个周五爬取数据,并把菜谱发送到我们的邮箱。

import requests

import smtplib

import schedule

import time

from bs4 import BeautifulSoup

from email.mime.text import MIMEText

from email.header import Header

account=input('请输入你的邮箱:')

password=input('请输入你的密码:')

receiver=input('请输入收件人的邮箱:')

def recipe_spider():

res=requests.get('http://www.xiachufang.com/explore/')#开始网址写成下厨房官网的网址了

html=res.text

soup=BeautifulSoup(html,'html.parser')

items=soup.find_all('div',class_='info pure-u')#要注意检查是不是find_all,如果不是的话,会出现NoneType

list_all=''

num=0

for item in items:

num+=1

name=item.find('a').text.strip()

url='http://www.xiachufang.com'+item.find('a')['href']

ingredients=item.find('p',class_='ing ellipsis').text.strip()

food_info='''

序号:{}

菜名:{}

链接:{}

原料:{}

'''.format(num,name,url,ingredients)

list_all=list_all+food_info

return (list_all)

def send_email(list_all):

global account,password,receiver

mailhost='smtp.qq.com'

qqmail=smtplib.SMTP()

qqmail.connect(mailhost,25)

qqmail.login(account,password)

content='亲爱的,本周的热门菜谱如下:'+list_all

message=MIMEText(content,'plain','utf-8')

subject='周末吃个啥'

message['Subject']=Header(subject,'utf-8')

try:

qqmail.sendmail(account,receiver,message.as_string())

print('邮件发送成功')

except:

print('邮件发送失败')

qqmail.quit()

def job():

print('开始一次任务')

list_all=recipe_spider()

send_email(list_all)

print('任务完成')

schedule.every(1).minute.do(job)#这里为了检测代码运行结果,我先设置了每隔1分钟

#schedule.every().friday.at("18:00").do(job)#部署每周五的18:00执行函数的任务

while True:

schedule.run_pending()

time.sleep(1)

你可能感兴趣的:(python周末吃什么)