| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- import sqlite3
- class CLDatabase:
- def __init__(self, db_name='cl.db'):
- self.db_name = db_name
- self.conn = None
- self.cursor = None
- def connect(self):
- """连接到 SQLite 数据库"""
- self.conn = sqlite3.connect(self.db_name)
- self.cursor = self.conn.cursor()
- def fetch_all_data(self):
- """查询表中的所有数据"""
- self.cursor.execute("SELECT * FROM CL")
- rows = self.cursor.fetchall()
- print(f'\n\n数据库共有{len(rows)}条数据')
- return rows
- def filter_by_title(self, filter_list):
- """
- 根据 filter_list 中的元素模糊匹配 title 字段,并打印匹配的结果
- :param filter_list: 包含需要匹配的关键词的列表
- """
- if not filter_list:
- print("filter_list 为空,未进行匹配。")
- return
- # 构建 SQL 的 WHERE 条件
- like_conditions = " OR ".join(["Title LIKE ?"] * len(filter_list))
- query = f"SELECT * FROM CL WHERE {like_conditions}"
- # 构建参数列表,每个关键词前后加上 % 用于模糊匹配
- params = [f'%{keyword}%' for keyword in filter_list]
- # 执行查询
- self.cursor.execute(query, params)
- matched_rows = self.cursor.fetchall()
- # 打印匹配的结果
- if matched_rows:
- print("\n匹配到的结果:")
- for row in matched_rows:
- print(
- f"ID: {row[0]}, Tag: {row[5]}, Full_URL: {row[2]}, Title: {row[4]}")
- print(f"匹配到的总行数: {len(matched_rows)}")
- else:
- print("没有匹配到任何结果。")
- def close(self):
- """关闭数据库连接"""
- if self.conn:
- self.conn.close()
- # 使用示例
- if __name__ == "__main__":
- filter_list = ['']
- db = CLDatabase()
- db.connect()
- db.filter_by_title(filter_list)
- db.fetch_all_data()
- db.close()
|