Azure新知识科普 - 分享个能即时获取最新Azure Update的python脚本

网友投稿 248 2022-09-30

Azure新知识科普 - 分享个能即时获取最新Azure Update的python脚本

之前花了不少时间分享了一些Azure新出的东西,但是实际上也只是九牛一毛,新东西实在太多太多了,至于我是如何快速发现这些东西的,实际上Azure有一个特定的网站会announce最新的update,比如某些服务开始preview或者某些开始GA等等,但是一页页翻,一点点看也挺累的,所以写了个很简单的小爬虫,把数据抓到CSV里,这样就可以保存下来然后筛着看自己感兴趣的一些了

脚本是基于Python3的,有兴趣的可以自己试试,实际上非常简单,就不放在Github了

# -*- coding: utf-8 -*-## -------------------------------------------------------------------------------# Name: get_azure_updates# Description: fetch update list of Author: mxy# Date: 12/7/2021# Project scrapyproject# -------------------------------------------------------------------------------import osimport requestsfrom bs4 import BeautifulSoupfrom urllib import parseimport csvbase_url = '= '= 1csv_file = 'Azure_Updates.csv'csv_header = ['No.', 'Update_Content', 'Update_URL', 'Update_date']csv_data = []def get_update_per_page(base_url, headers, params): response = requests.get(base_url, headers=headers, params=params) soup = BeautifulSoup(response.text, 'html.parser') update_lists = soup.find_all('a', attrs={'data-test-element': 'update-entry-link'}) date_lists = soup.find_all(attrs={'class': 'column medium-1'}) global no for i in range(len(update_lists)): update_data = { 'No.': no, 'Update_Content': update_lists[i].text, 'Update_URL': parse.urljoin(announce_base_url, update_lists[i]['href']), 'Update_date': date_lists[i].text.strip() } no += 1 csv_data.append(update_data) write_dict_to_csv(csv_header, csv_data, csv_file)def write_dict_to_csv(csv_header, csv_data, csv_file): with open(csv_file, 'w', encoding="utf_8_sig", newline='')as f: try: f_csv = csv.DictWriter(f, csv_header) f_csv.writeheader() f_csv.writerows(csv_data) except Exception as errors: print(errors)headers = { 'authority': 'azure.microsoft.com', 'cache-control': 'max-age=0', 'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="96", "Google Chrome";v="96"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"Windows"', 'upgrade-insecure-requests': '1', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', 'sec-fetch-site': 'same-origin', 'sec-fetch-mode': 'navigate', 'sec-fetch-user': '?1', 'sec-fetch-dest': 'document', 'referer': ' 'accept-language': 'en,zh-CN;q=0.9,zh;q=0.8'}if __name__ == '__main__': if os.access(csv_file, os.F_OK): print("csv file already exist, remove file %s" % (csv_file)) os.remove(csv_file) for i in range(1, 20): params = ( ('Page', i), ) get_update_per_page(base_url, headers, params)

运行完成之后会生成一个Azure_Updates.csv的文件,打开看到的就是这段时间以来的更新内容了

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:关于Mybatis与JPA的优缺点说明
下一篇:Linux线程终止
相关文章

 发表评论

暂时没有评论,来抢沙发吧~