大佬教程收集整理的这篇文章主要介绍了CSDN热榜监控,一发布就被各路“大V”联合封杀,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
❤️欢迎订阅《从实战学python》专栏c;用python实现爬虫、办公自动化、数据可视化、人工智能等各个方向的实战案例c;有趣又有用!❤️无所遁形
更多精品专栏简介点这里
让子弹飞一会
近日c;csdn的热榜可以说是”乌烟瘴气“c;培训机构c;公众号引流c;打擦边球c;层出不穷。作为热榜的密切关注者c;决不能让这片热土毁于一旦。正义可以会迟到c;但绝不会缺席。连夜写了这个热榜监控的程序。功能如下:
这一步还是比较简单的c;发送请求就好了。
将链接在浏览器打开c;得到如下json串c;将作者c;文章标题c;文章链接解析出来。
{
"code": 200,
"message": "success",
"data": [
{
"hotRankScore": "91055.0",
"pcHotRankScore": "9.1w",
"loginUserIsFollow": false,
"nickName": "退休的龙叔",
"avatarUrl": "https://profile.csdnimg.cn/9/0/1/3_zhiguigu",
"userName": "zhiguigu",
"articletitle": "Pycharm常用的小技巧汇总c;Python新手上路必备c;快上车!",
"articleDetailUrl": "https://blog.csdn.net/zhiguigu/article/details/119449173",
"commentCount": "68",
"favorCount": "528",
"viewCount": "5745",
"hotComment": null
},
...
]
}
代码:
for i in range(2):
res = requests.get(f"https://blog.csdn.net/phoenix/web/blog/hotRank?page={i}&pageSize=50",headers=headers).json()
if res["code"] == 200:
data = res["data"]
for d in data:
nickName = d["nickName"]
articletitle = d["articletitle"]
articleDetailUrl = d["articleDetailUrl"]
print(articleDetailUrl)
上一步我们拿到了文章的urlc;现在就要逐一访问文章c;解析其内容。老规矩c;还是xpath解析。
因为链接都存在于标签c;所以拿到所有的href就可以了。
代码:
request = requests.get(articleDetailUrl, headers=headers)
time.sleep(1)
html = request.text
# print(html)
content = etree.HTML(html)
# 使用Xpath匹配阅读量
a_href = content.xpath('//*[@id="content_views"]//a/@href')
这里我们用正则表达式匹配微信引流连接。将检测到含有引流链接的文章信息写入文件。
代码:
for value in a_href:
r = re.compile(r'http[s]?://mp.weixin.qq.com/', )
match = r.findall(str(value))
if (len(@H_937_43@match) > 0):
if (is_out):
f.write(str(id) + 't' + nickName + 't' + articletitle + 't' + articleDetailUrl + 'n')
f.write("微信引流链接如下:" + 'n')
is_out = false
f.write(value + 'n')
print(value)
所有文章都检测完后c;将文件里的内容通过邮件发送给我。
代码:
def send_mail():
message = ""
with open("result.txt", 'R', encoding='utf-8') as f:
lines = f.readlines()
for i in lines:
message = message + i
mail_host = 'smtp.qq.com'
mail_user = ''
mail_pass = ''
# 发送方c;可以自己给自己发
sender = '@qq.com'
# 邮件接受方邮箱地址c;可多写
receivers = ['@qq.com']
# 邮件内容设置c;将第一个参数修改成你要发送的内容即可
message = MIMEText(message, 'plain', 'utf-8')
# 邮件主题
message['Subject'] = 'CSDN热榜监控'
# 发送方信息
message['From'] = sender
# 接受方信息
message['To'] = receivers[0]
try:
smtpObj = smtplib.SMTP_SSL(@H_937_43@mail_host)
# 登录到服务器
smtpObj.login(@H_937_43@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 * * * *
这几个参数的作用c;请自行百度。
关于云服务器c;可以参考一条这篇文章《阿里云服务器购买及SSH免密登录》进行购买和配置。
⭐今天是坚持刷题更文的第25/100天
⭐各位的点赞、关注、收藏、评论、订阅就是一条创作的最大动力
为了回馈各位粉丝c;礼尚往来c;给大家准备了一条多年积累下来的优质资源c;包括 学习视频、面试资料、珍藏电子书等
大家可以评论留言或者私信我领取
以上是大佬教程为你收集整理的CSDN热榜监控,一发布就被各路“大V”联合封杀全部内容,希望文章能够帮你解决CSDN热榜监控,一发布就被各路“大V”联合封杀所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。