700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Python 爬取百度 搜索风云榜 新闻并 自动推送 到邮箱

Python 爬取百度 搜索风云榜 新闻并 自动推送 到邮箱

时间:2020-11-21 15:13:46

相关推荐

Python 爬取百度 搜索风云榜 新闻并 自动推送 到邮箱

本文将使用Python爬取百度新闻搜索指数排名前50的新闻,并通过服务器运行,每天定时发送到指定邮箱。

先上代码:

# -*- coding:utf-8 -*-import requests,os,re,email,smtplibEMAIL_ADDRESS='****@'EMAIL_PASSWORD='***'s=smtplib.SMTP(host='',port=587)s.starttls()s.login(EMAIL_ADDRESS,EMAIL_PASSWORD)print('Connected~')url='/buzz?b=341&c=513&fr=topbuzz_b1'r=requests.get(url)txt=r.content.decode('GBK')pt=pile('href_top=".*?">(.*?)<')title=re.findall(pt,txt)pt1=pile('href="(.*?)" href_top')urls=re.findall(pt1,txt)#print(len(urls))pt2=pile('icon-....">(.*?)</span')rise=re.findall(pt2,txt)#print(title,rise,urls)i=50mss=''for x in range(i):ma=(str(x+1),title[x],rise[x],urls[x])ms=', '.join(ma)mss+=(ms+'\n')msgs=mssmsg=email.message_from_string(msgs)msg['From']=EMAIL_ADDRESSmsg['To']=EMAIL_ADDRESS # add who need receive the eamils.sendmail(EMAIL_ADDRESS,EMAIL_PASSWORD,msg.as_string())s.quit()print('Your data sent to %s',EMAIL_ADDRESS)

主要使用了requests,smtplib, re,email模块,只需要30几行代码就可以实现。

接下来我说下怎么在服务器上设置:

crontab -e这个命令可以搜索了解下怎么使用的,

在我们服务器下面输入这个命令 crontab -e

* * * * * program

进入编辑模式按 i 键

30 07* * * /usr/local/bin/python3 /usr/temp/baidu.py 每天早上7:30分运行一次

然后:wq 保存,就可以执行了。另外需要注意的是一定要写成绝对路径,这样保证程序能运行。

最后上一张截图

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。