先登录你要发送的qq邮箱,进入设置开启POP3/SMTP服务,获取授权码
代码
import random
import requests
from lxml import etree
import smtplib
from email.mime.text import MIMEText
class Story_Spider(object):
def __init__(self,url):
self.url = url
self.headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36',
}
self.parse()
def parse(self):
response = requests.get(self.url,headers=self.headers)
if response.status_code==200:
html = etree.HTML(response.text)
sotry_list = html.xpath('//dl[@class="txt_box"]/dd/a/@href')
# print(sotry_list)
story = random.choice(sotry_list)
if not 'http' in story:
story = 'http://www.tom61.com'+story
self.down_load_stroy(story)
def down_load_stroy(self,url):
html = etree.HTML(requests.get(url,headers = self.headers).content.decode('utf-8'))
story_name = html.xpath('//div[@class="t_news"]/h1/text()')[0]
story_content = html.xpath('string(//div[@class="t_news_txt"])')
# print(story_content)
# print(story_name)
self.send_email(story_name,story_content)
def send_email(self,name,content):
#定义发件人
msg_from = '2506905772@qq.com'
#授权码
password = 'cupjypyoykfsdiai'
receiver = '2785104823@qq.com'
subject = name
msg = MIMEText(content,'plain','utf-8')
msg['From'] = msg_from
msg['To'] = receiver
msg['Subject'] = subject
try:
#创建stmp对象
smtp = smtplib.SMTP()
#连接有邮件服务器
smtp.connect('smtp.qq.com')
#登陆
smtp.login(msg_from,password)
#发送
smtp.sendmail(msg_from,msg['To'].split(';'),msg.as_string())
print('发送成功!')
except Exception:
print('发送失败!')
if __name__ == '__main__':
page_list = []
for i in range(1,72):
if i ==1:
page_list.append('http://www.tom61.com/ertongwenxue/shuiqiangushi/index.html')
else:
page_list.append('http://www.tom61.com/ertongwenxue/shuiqiangushi/index_{}.html'.format(i))
base_url = random.choice(page_list)
Story_Spider(base_url)