1、導入pymysql庫和jieba庫
pymysql庫的安裝:控制台命令行:pip install -i https://mirrors.ustc.edu.cn/pypi/web/simple pymsql
這里使用的是中科大的鏡像,很快。
安裝jieba庫同理。
2、編寫代碼
# -*- coding: utf-8 -*-
# @Time: 2020/8/25 19:24
# @Author: fanlumaster
# @File: douban.py
# @Software: PyCharm
import pymysql
import jieba
# 連接數據庫
db = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='123456', db='douban', charset='utf8')
cursor = db.cursor()
# 測試,打印一下mysql版本
cursor.execute("select version()")
data = cursor.fetchone()
print("Database Version:%s" %data)
# 執行查詢語句
sql = 'select * from posts'
cursor.execute(sql)
result = cursor.fetchall()
# 開始打印
print("開始打印")
i = 1
str = ""
for res in result:
print(i)
# print(res[5])
str += res[5]
i = i + 1
# print(res)
print(str)
cursor.close()
# 開始用jieba統計詞頻
words = jieba.lcut(str)
counts = {}
for word in words:
if len(word) == 1: # 排除單個字符的分詞結果
continue
else:
counts[word] = counts.get(word, 0) + 1 # 這里的0表示如果word這個鍵不在字典中,就添加這個鍵,並且默認為0,如果加上后面的1,就合理了
items = list(counts.items())
items.sort(key=lambda x:x[1], reverse=True) # 以出現的次數為標准,從大到小
for i in range(100):
word, count = items[i]
print("{0:<10}{1:>5}".format(word, count))
mysql的數據庫是之前用Java從豆瓣的小組爬取下來的一個小組的帖子,這里只是去除了主帖的數據。
有一說一,數據有14000多條,大概十幾mb的樣子,所以jieba執行起來還怪慢的。
運行結果:
數據庫: