簡介: 2020了,編程語言也要決出2019年的最佳語言了,會是誰呢,從 TIOBE 上來看,Java、C 和 Python 基本鎖定了前三的位置,Java 江湖老大的地位,還是無人能撼動呢。
原創: 周蘿蔔 蘿蔔大雜燴
2020了,編程語言也要決出2019年的最佳語言了,會是誰呢,從 TIOBE 上來看,Java、C 和 Python 基本鎖定了前三的位置,Java 江湖老大的地位,還是無人能撼動呢。
下面先來一張 TIOBE 網站的走勢圖,鎮樓(這是個暴露年齡的詞語)!
數據獲取
數據獲取的部分,與上一篇 DB 篇很類似,都是解析 JavaScript 代碼裏的變量,抽出數據即可
def get_pl_data(name): name_lower = [i.lower() for i in name] for i in name_lower: print("Request ", i) if i == 'c#': i = 'csharp' url = 'https://www.tiobe.com/tiobe-index/' + i res = requests.get(url).text content = BeautifulSoup(res, "html.parser") js = content.find_all('script')[9].string src_text = js2xml.parse(js) src_tree = js2xml.pretty_print(src_text) data_tree = BeautifulSoup(src_tree, 'html.parser') array_list = data_tree.find_all('array') data_list = [] for array in array_list[3:]: array_data = array.find_all('number') data_list.append({'date': array_data[0]['value'] + '-' + array_data[1]['value'] + '-' + array_data[2]['value'], 'value': array_data[3]['value']}) save_data(i, data_list)
當然這裏還是提前獲取了前50名編程語言的列表,直接通過 pandas 的 read_html 方法就可以方便的獲取
def get_pl_list(): url = 'https://www.tiobe.com/tiobe-index/' pl_df = pd.read_html(url) top_20 = pl_df[0]['Programming Language'].values.tolist() bottom_30 = pl_df[1]['Programming Language'].values.tolist() return top_20 + bottom_30
最後再保存到 csv 中
with open('pl_data.csv', 'a+', encoding='utf-8') as f: f.write('name,value,date\n') for d in data: try: row = '{},{},{}'.format(name, d['value'], d['date']) f.write(row) f.write('\n') except: raise
如果不出意外的話,幾分鐘的時間裏,我們就能夠拿到近20年編程語言的風雲數據啦!
文章進行了部分刪減,整體語言指數與圖解內容請點擊:https://developer.aliyun.com/article/741509?utm_content=g_1000098137
關鍵字:JavaScript 前端開發 Java Go PHP C# C語言 C++ iOS開發 Python