分类:Python爬虫

分享一个监控知12的wordpress插件是否更新的脚本

分享一个监控知12的wordpress插件是否更新的脚本

背景

本站现在用了知12提供的wordpress付费阅读插件,但是他们没有把插件发布到wordpress的插件商店,从而也就无法得知新版本的更新,导致上个月有个用户微信上和我反馈我的博客在付费完之后不会自动跳转然后显示隐藏内容了,需要手动验证,最主要的是要多次重复验证最后才成功,体验十分不好,当时我一看我的知12提供的paywall插件还是一个beta版本的,官网上已经在这之后又更新了好几版了,当机立断,我马上花几分钟用filezilla把插件更新到了官网最新的版本,然后找之前反馈问题的网友又测试了一下,他说一切都变得很smooth了~🤣

上菜

#!/usr/bin/env python3
# coding = 'utf-8'
"""
@Time    : 2020/9/5-22:58
@Author  : sharp
@FileName: zhi12.py
@Software: PyCharm
@Blog    :https://www.sharpgan.com/
"""


import smtplib import requests from bs4 import BeautifulSoup from user_agent import generate_user_agent …
阅读更多
你想收到hostloc每日热帖的邮件么?

你想收到hostloc每日热帖的邮件么?

碎碎念

掐指一算,混loc的日子应该也快一年了,刚开始还几乎每天都上论坛上翻翻帖子,可后来到现在越来越少上了,但也还会隔一段时间猛刷上个把小时,今天闲来无事写了个小爬虫用来每日推送loc的热帖。

代码

#!/usr/bin/env python3
# coding = 'utf-8'
"""
@Time    : 2020/3/26-18:51
@Author  : sharp
@FileName: hostloc_hot.py
@Software: PyCharm
@Blog    :https://www.sharpgan.com/
"""


import time import smtplib import requests from bs4 import BeautifulSoup from email.mime.text import MIMEText

HOST = 'smtp.qq …
阅读更多
你想第一时间得知垠神是否发表了新博客么?

你想第一时间得知垠神是否发表了新博客么?

背景

今天给大家分享一个python爬虫 ,其实很早之前就在这写过一个类似的,只不过这个是用于部署在vps上用的,因为这个爬虫每次运行的时候都要检测上次爬虫生成的一个文本文件中的内容来判断是否发表了新博客。

可现在本站所分享的python脚本都由腾讯云的云函数来托管了,因为云函数是severless化的,不可能用每次检测上次爬虫生成的一个文本文件中的内容来判断是否发表了新博客。

腾讯云官方推荐用其自家的对象存储COS来实现,我觉得比较麻烦,后来我又想到可以把临时生成的文件放到免费的ftp空间上,每次比较的时候再取回本地进行比较,但想了想还是有点麻烦懒得实现,就在我一筹莫展的时候突然灵光一现,发现可以用当天的日期和博客列表的第一篇博客的发表日期进行比较,如果相同就代表今天发表了新博客,就这样我用这种技巧巧妙的再次实现了serverless化,快给我点赞👍!

P.S.
  • 当然这样子也有个bug,即是:如果云函数的触发条件是每天一次,而垠神恰巧一天发了两篇及以上的博客,那么就会漏掉当天发表的第一篇博客,当然话说回来据我多年对垠神的观察,垠神很少有或者说没有一天发表两篇博客的时候
  • 还有个问题要着重说一下,这个也是我在写本文的时候刚想到的(在写本文之前本人已经把这个python爬虫 打包部署上去了),就是云函数的触发时间不能设为每一天,因为云函数的每一天默认的是每天0点0分0秒执行一次,如果这样设置的话可能永远不会收到垠神发表了新博客的邮件通知了,具体原因大家自己想一下,我就不赘述了,反过来大家最好把触发时间设置为每天的23:59,好了不啰嗦了,我要去改云函数的触发时间点了,bye👋!
  • 最后再来讨论一个话题,本篇博客的标题提到了‘第一时间 …
阅读更多
为什么用BeautifulSoup提取xml的link标签中的url总为空呢

为什么用BeautifulSoup提取xml的link标签中的url总为空呢

废话少说

闲言少叙,直接上代码:
#!/usr/bin/env python3
# coding=utf-8


import requests from bs4 import BeautifulSoup

def get_soup(): url = 'https://www.solidot.org/index.rss' rss_xml = requests.get(url).text soup = BeautifulSoup(rss_xml, 'html5lib') return soup

def get_mail_body(): contents = get_soup().select('item')[0:9] contents_list = [] for c in contents: title = c …
阅读更多