最近在玩微博,想用java自己搞个。本人没有项目经验,比较笨,希望能有个视频啥的一步步带着做。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最近在玩微博,想用java自己搞个。本人没有项目经验,比较笨,希望能有个视频啥的一步步带着做。相关的知识,希望对你有一定的参考价值。

自己感觉这个项目表好像不需要几张,但中间使用框架还是页面效果什么的不是很有把握,而且对于SSH的整合没有了解,对于中间的消息传递很晕……

参考技术A 如果编写微博,如果只用java来编写的话可能有一定难度吧(不是很懂),一般这类的用php,.net和java的几种语言共同编写的
如果学习ssh,本人只对mvc模式下有一点了解,不过道理应该是相通的,这个模式个人认为至少对于配置文件的管理相对清晰,层次感很好,虽然有点繁琐,不过对于初学ssh,了解信息的传递是很有帮助的,本人还在学习ssh中,有问题可以相互探讨学习
参考技术B 楼上说一般这类的用php,.net和java的几种语言共同编写的,狂晕。。。追问

共同编写确实没听过……

追答

这几种语言的开发都是用各自不同的开发环境和开发工具的,而且.net分很多种的:ASP、C#、VB等等,只是一个统称。
学习框架,比如SSH,哪有什么初学不初学的,学个框架就是一两天的时间嘛,会用就好了。
你可以去网上找SSH的相关资料自学,开源框架中,SSH还算不错的了

追问

我刚接触,感觉整合上不是很顺,是不是要找些视屏教程什么就行了?您能推荐些不错的么?

参考技术C 娱乐吧!所有的一切都只是HelloWorld而已。

python实战不玩微博,一封邮件就能知道实时热榜,天秀吃瓜

❤️欢迎订阅《从实战学python》专栏,用python实现办公自动化、数据可视化、人工智能等各个方向的实战案例,有趣又有用!❤️

更多精品专栏简介点这里

有的人金玉其表败絮其中,有的人却若彩虹般绚烂,怦然心动

前言

哈喽,大家好,我是一条。

在生活中我是一个不太喜欢逛娱乐平台的人,抖音、快手、微博我手机里都没装,甚至微信朋友圈都不看,但是自从开始写博客,有些热度不得不蹭。

所以就有了这样一个需求,能不能让微博主动把热榜推给我呢?肯定是不行,微博又不是我家开的,怎么办呢?

人生苦短,我用python。方案如下:

  • 每隔一小时爬取一次微博热榜
  • 将热榜内容通过邮件推送给我

话不多说,开干

爬取热榜

微博的热榜并没有登录验证,操作起来比较简单,一个请求过去,然后解析html就行了。

以前我们都是用xpath解析,今天带大家体验一下BeautifulSoup

url

热榜url:http://s.weibo.com/top/summary

请求参数:

data = {
    'cate': 'realtimehot'
}

请求headers

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
}

解析网页

mac快捷键alt+command+i打开开发者工具

定位到热榜所在的<div>里,发现热度和热榜内容都位于<a>标签。一条热榜是一个<tr>

分析完这些,我们就可以解析网页了。

code

def get_content():
    try:
        res = requests.get('http://s.weibo.com/top/summary?', params=data, headers=headers)
        if res.status_code == 200:
            html = res.text
            soup = BeautifulSoup(html, 'lxml')
            tr = soup.find(id='pl_top_realtimehot').find_all('tr', class_="")
            hotSearch = ""
            for i, item in enumerate(tr):
                if i > 0:
                    title = item.find('a').get_text()
                    url = "https://s.weibo.com" + item.find('a').attrs['href']
                    hot = item.find('span').get_text()
                    id = item.find('td', class_="td-01 ranktop").get_text()
                    hotSearch += id + '\\t' + title + "\\t" + hot + "\\t" + url + "\\n"
            print(hotSearch)
            return hotSearch
    except:
        print("访问失败")

看一下控制台输出:

包含 排名、内容、热度、url,下面只需要将这些内容发送到邮箱就可以了。

发邮件

学会用python发邮件可以帮助我们完成许多意想不到的操作,大家要认真看哦!

邮箱配置

首先需要配置我们的邮箱,开启smtp协议,smtp是一种提供可靠且有效的电子邮件传输的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。

本文以qq邮箱为例进行配置,步骤如下;

  • 登录邮箱,进入设置
  • 点击开启smtp
  • 按照提示发送信息到指定号码
  • 完成后点击我已发送
  • 将key记录下来,后面要用

发送邮件

具体邮件的发送我们通过smtplib这个库来实现

安装

pip install smtplib

配置邮箱信息:

 	mail_host = 'smtp.qq.com'
    mail_user = '2865866423'
    #将pass替换成刚刚保存的key
    mail_pass = 'your pass'

提示

qq邮箱支持自己给自己发邮件

邮件内容

# 邮件内容设置,将第一个参数修改成你要发送的内容即可
message = MIMEText(message, 'plain', 'utf-8')
# 邮件主题
message['Subject'] = '微博热搜'
# 发送方信息
message['From'] = sender
# 接受方信息
message['To'] = receivers[0]

设置好这些,只需要登录邮箱服务器发送就好了

完整代码

def send_mail(message):
    mail_host = 'smtp.qq.com'
    mail_user = ''
    mail_pass = ''

    # 发送方,可以自己给自己发
    sender = '@qq.com'
    # 邮件接受方邮箱地址,可多写
    receivers = ['@qq.com']

    # 邮件内容设置,将第一个参数修改成你要发送的内容即可
    message = MIMEText(message, 'plain', 'utf-8')
    # 邮件主题
    message['Subject'] = '微博热搜'
    # 发送方信息
    message['From'] = sender
    # 接受方信息
    message['To'] = receivers[0]
    
    try:
        smtpObj = smtplib.SMTP_SSL(mail_host)
        # 登录到服务器
        smtpObj.login(mail_user, mail_pass)
        # 发送
        smtpObj.sendmail(
            sender, receivers, message.as_string())
        # 退出
        smtpObj.quit()
        print('success')
    except smtplib.SMTPException as e:
        print('error', e)  # 打印错误

测试一下

已经收到了主题为「微博热搜」的邮件

定时执行

为了实时的查看热榜,需要将脚本放到服务器,每小时定时执行一次。

命令

crontab -e
0 * * * * python /hot_monitor.py

关于0 * * * *这几个参数的作用,请自行百度。

关于云服务器,可以参考一条这篇文章《阿里云服务器购买及SSH免密登录》进行购买和配置。

🌈寻宝

⭐今天是坚持刷题更文的第20/100天

⭐各位的点赞、关注、收藏、评论、订阅就是一条创作的最大动力

为了回馈各位粉丝,礼尚往来,给大家准备了一条多年积累下来的优质资源,包括 学习视频、面试资料、珍藏电子书等

大家可以评论留言或者私信我领取

以上是关于最近在玩微博,想用java自己搞个。本人没有项目经验,比较笨,希望能有个视频啥的一步步带着做。的主要内容,如果未能解决你的问题,请参考以下文章

SAE 搭建微信公众平台

python实战不玩微博,一封邮件就能知道实时热榜,天秀吃瓜

碎碎念

求助!CFE下怎么刷固件?

Java学习之路(转)

[原创]java WEB学习笔记30:Cookie Demo 之显示最近浏览的记录