1. 使用钉钉机器人发送知乎热榜 / 微博热搜内容到钉钉群聊, 钉钉机器人设置在内部打开网页链接,实现在钉钉侧边栏打开知乎/微博,进行浏览;
2. 使用python定时爬取知乎热榜 / 微博热搜内容. 定时发送到群聊;
以下是代码,微博的完整代码实现跟知乎一样,不再重复贴在这里了
class Zhihu:
def __init__(self):
# 设置 头数据
self.headers = {'scheme': 'https',
'accept': 'text/html, application/xhtml+xml, application/xml',
'accept-language': 'zh-CN, zh',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0 Win64 x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36'
}
self.url = 'https://www.zhihu.com/billboard'
def billboard(self):
# get请求 热榜地址
r = requests.get(url=self.url, headers=self.headers)
# print(r.text)
# 解析
soup = BeautifulSoup(r.text, 'html.parser')
# 获取页面内的js数据 并转换类型
data = json.loads(soup.find('script', {'id': 'js-initialData'}).get_text())
# 解析list类型的数据
jsonStr = data['initialState']['topstory']['hotList']
markdown_content = ""
for index, item in enumerate(jsonStr):
# ----- 第二版 -----
titleArea = item['target']['titleArea']['text']
link = item['target']['link']['url']
markdown_content += f"<span style='color:black;font-size:14px;'> {index}. [{titleArea}]({link}) </span>\n\n"
markdown_content += "---\n\n"
return markdown_content
class WeiBo:
pass
class DingDing:
def __init__(self):
self.webhook = "自己机器人的webhook"
self.sign = "你自己的签名"
self.pc_slide = True # 实现钉钉侧边栏打开网页
self.ding_robot = DingtalkChatbot(webhook=self.webhook, secret=self.sign, pc_slide=self.pc_slide)
self.zhi = Zhihu()
self.wei = WeiBo()
def send_zhihu(self):
markdown_content = self.zhi.billboard()
self.ding_robot.send_markdown(title="知乎热搜", text=markdown_content)
def send_weibo(self):
markdown_content = self.wei.hot_band()
self.ding_robot.send_markdown(title="微博热搜", text=markdown_content)
实现的效果:
有好玩的工具可以一起交流: https://t.me/+tvCcpXNHWtkwZjg1