1.第一步把所有故事的链接写入文件
import json
import requests
from lxml import etree
from fake_useragent import UserAgent
ua=UserAgent()
useragent=(ua.random)
headers={'useragent':useragent}
def requests_html(url):
response=requests.get(url=url,headers=headers).content.decode('utf-8')
tree=etree.HTML(response)
title_list=tree.xpath('//div[@id="Mhead2_0"]/dl/dd')
for story in title_list:
title=story.xpath('./a/text()')[0]
story_url=story.xpath('./a/@href')[0]
story_url='http://www.tom61.com/'+story_url
story_dict={}
story_dict['故事名']=title
story_dict['story_url']=story_url
story_list.append(story_dict)
with open('story.json','w', encoding='utf-8')as fp:
json.dump(story_list,fp, ensure_ascii=False)
if __name__ == '__main__':
story_total=[]
story_list = []
url='http://www.tom61.com/ertongwenxue/shuiqiangushi/index.html'
requests_html(url)
for i in range(2,10):
url_base= f'http://www.tom61.com/ertongwenxue/shuiqiangushi/index_{i}.html'
requests_html(url_base)
print(story_list)
2 读出文件并发送文件
import json import requests from fake_useragent import UserAgent from lxml import etree import random ua=UserAgent() useragent=(ua.random) headers={'useragent':useragent} def request_html(story): url=story['story_url'] response=requests.get(url,headers=headers).content.decode('utf-8') tree=etree.HTML(response) content_list=tree.xpath('//div[@class="t_news_txt"]/p/text()') content =''.join(content_list) print(content) return content import smtplib from email.mime.text import MIMEText def send_email(name,content): #发送方邮箱: msgfrom='1637805820@qq.com' #授权码: password ='bwgzjjef' #收件人邮箱: receiver='846950@qq.com' subject =name #主题 msg = MIMEText (content,'plain','utf-8') msg['Subject']= subject msg['From']= msgfrom msg['To']= receiver try: smtp = smtplib.SMTP() smtp.connect('smtp.qq.com') smtp.login(msgfrom,password) smtp.sendmail(msgfrom,msg['To'],msg.as_string()) print('发送成功') except: print('发送失败') pass if __name__ =='__main__': name='maguq' story_total=[] Q = r"E:\爬虫练习\定式发送爬取邮件\story.json" with open(Q,'r',encoding='utf-8')as fp: story_lis=json.load(fp) story=random.choice(story_lis) content=request_html(story) send_email(name,content)
#群发
实现定时发送功能
在windows的环境中,在cmd中输入compmgmt.msc,将该脚本文件加入任务计划程序库,设置运行时间和频率
进入创建任务以后,需要一直点击下一步进行操作:【按照下一步操作一步一步添加即可,部分提示如下:】
注意:设置完成以后,一定需要先用命令行启动脚本,查看是否该有环境问题,导致代码运行有问题
如果没有问题,就OK了