美文网首页大数据 爬虫Python AI SqlPython小哥哥
女神微博监控实现+Python进阶路线图 !

女神微博监控实现+Python进阶路线图 !

作者: 14e61d025165 | 来源:发表于2019-04-18 16:28 被阅读0次

这个小项目的实现逻辑:

1、网络爬虫模块:每过1分钟爬一次牙牙的微博,有内容更新则通过邮件发送提醒自己,该功能可以拓展,比如监控某些关键词用户;

2、自动发送邮件模块:实现邮件发送,这里发送邮箱和密码改为自己的即可;

3、爬虫代码和发送邮件的代码都放在云服务器上24小时运行可实现实时监控状态;

爬虫代码:

<pre style="margin: 0px; padding: 0px; border: 0px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 400; font-stretch: inherit; font-size: 18px; line-height: inherit; font-family: inherit; vertical-align: baseline; word-break: break-word; color: rgb(93, 93, 93); letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial;">

import requests
from lxml import etree
import time
import random
headers = {
 'User-Agent': 'Avant Browser/1.2.789rel1 (http://www.avantbrowser.com)',
 'Cookie': '你的cookie'
}
#定义获取第一条微博的函数
def getContents(url):
 #需要完善 异常处理 try...except...
 response = requests.get(url, headers = headers)
 selector = etree.HTML(response.content)
 #查看html源码可以找到微博内容+ 发布时间的结构 用xpath解析
 all_cont = selector.xpath("//span[@class='ctt']")
 all_times = selector.xpath("//span[@class='ct']")
 #解析出最新微博的发布时间
 time1 = all_times[0].xpath('string(.)')
 #解析出第一条微博内容 注意这里取第2或者第3个元素(具体视是否有个人介绍)
 con3= all_cont[2].xpath('string(.)')
 print(con3 + "发布时间:"+ time1[0:3])
 if time1[:3] == '1分钟':
 print('1分钟内更新了.....')
 #更新了则发送邮件通知
 context = '更新内容为:'+con3
 #调用发送邮件的函数
 send("收件邮箱地址", "女神微博更新啦~~", context)
 else:
 print('还未更新......')
#延时函数 大概1分钟抓取1次
def delay():
 delay = 59 + random.random()
 time.sleep(delay)
#女神微博地址 XXXX为她的微博id
url = 'https://weibo.cn/XXXXXXX/profile'
#让代码在服务器上一直跑着
while True:
 getContents(url)
 delay()

</pre>

发送邮件的函数模块代码:

<pre style="margin: 0px; padding: 0px; border: 0px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 400; font-stretch: inherit; font-size: 18px; line-height: inherit; font-family: inherit; vertical-align: baseline; word-break: break-word; color: rgb(93, 93, 93); letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial;">

from email.mime.text import MIMEText
import smtplib
account = "forXXXX@gmail.com"
password = "你的邮箱密码"
def send(to, title, content):
 smtp_port = 587 
 server = smtplib.SMTP('smtp.googlemail.com', smtp_port)
 server.docmd("EHLO server")
 server.starttls()
 server.set_debuglevel(1)
 server.login(account, password)
 msg = MIMEText(content)
 msg['Content-Type'] = 'text/plain; charset="utf-8"'
 msg['Subject'] = title
 msg['From'] = account
 msg['To'] = to
 server.sendmail(account, to, msg.as_string())
 server.close()

</pre>

注意gmail邮箱添加安全信任

image

每分钟更新检查一遍微博是否有更新,输出:

<pre style="margin: 0px; padding: 0px; border: 0px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 400; font-stretch: inherit; font-size: 18px; line-height: inherit; font-family: inherit; vertical-align: baseline; word-break: break-word; color: rgb(93, 93, 93); letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial;">

我来北京了 发布时间:05月
还未更新......
#更新了微博
我又来测试了 发布时间:1分钟
1分钟内更新了.....

</pre>

如果有更新,会收到邮件提醒:

image

总结:当然以上这个小工具还可以玩出很多模式,比如监控某某新闻网站的热点新闻,监控股票数据等等;上都是用Python实现的,总的来说好好学习Python还是能够玩出更多花样,下面附上Python全栈进阶路线图,学习路上迷茫的同学可以参考:

image

图1. Python语言基础

image

图2. Python语言高级

image

图3. Python全栈工程师前端

image

图4. Python全栈工程师后端

image

图5. Python Linux运维自动化开发

image

图6. Python KaliLinux信息安全开发与使用

image

图7. Python数据分析阶段

image

图8. Python人工智能阶段

image

图9. Python树莓派物联网阶段

image

图10. Python项目实战阶段

当然,以上其实也只是大体骨架,需要自己不断地去丰富血肉,通过具体的项目实战来把握其精髓,后续有时间再补充一些具体的能够用到职场学习资料吧;多加练习,定能风生水起~

相关文章

  • 女神微博监控实现+Python进阶路线图 !

    这个小项目的实现逻辑: 1、网络爬虫模块:每过1分钟爬一次牙牙的微博,有内容更新则通过邮件发送提醒自己,该功能可以...

  • 女神微博监控实现

    用到的知识:1、网络爬虫模块:每过1分钟爬一次牙牙的微博,有内容更新则通过邮件发送提醒自己;2、自动发送邮件模块:...

  • Python监控小姐姐/小哥哥微博,了解一下?

    导语 愉快地周末又到啦那么就更一波公众号吧利用Python实现微博监控(其实就是实时监控某个微博用户有没有发新的微...

  • Python系列之——利用Python实现微博监控

    0x00 前言: 前几个星期在写一个微博监控系统 可谓是一波三折啊 获取到微博后因为一些字符编码问题 导致心态爆炸...

  • Python实时监控微博更新

    一、思路整理: 写了上篇文章“如何用Python编程实时监控币种拉盘或砸盘行为”之后,发现公信宝的拉盘行动每次都提...

  • Python实现微博爬虫

    想获取某人发的所有微博信息,发现新浪微博的API里存在局限性,不仅需要申请高级接口,而且还要用户授权才能获取他发的...

  • Python学习路线图

    文章转载自「开发者圆桌」一个关于开发者入门、进阶、踩坑的微信公众号 Python学习路线图你可以通过百度云盘下载观...

  • python对日记、文件、txt的操作

    实时动态日记监控: 远程监控端口: Python实现读取目录所有文件的文件名并保存到txt文件: python切割...

  • (0)实践JavaScript之路由、模板

    一、基本模板和函数 1.利用python实现微博首页的视图(routes/weibo.py) 2.微博首页视图注意...

  • 自动转发抽奖微博程序

    写了个自动转发抽奖微博的程序,实现了python版,我的母语java版写了大半,流程就是:模拟登录微博->模拟搜索...

网友评论

    本文标题:女神微博监控实现+Python进阶路线图 !

    本文链接:https://www.haomeiwen.com/subject/njutgqtx.html