cl_load.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import sqlite3
  2. class CLDatabase:
  3. def __init__(self, db_name='cl.db'):
  4. self.db_name = db_name
  5. self.conn = None
  6. self.cursor = None
  7. def connect(self):
  8. """连接到 SQLite 数据库"""
  9. self.conn = sqlite3.connect(self.db_name)
  10. self.cursor = self.conn.cursor()
  11. def fetch_all_data(self):
  12. """查询表中的所有数据"""
  13. self.cursor.execute("SELECT * FROM CL")
  14. rows = self.cursor.fetchall()
  15. print(f'\n\n数据库共有{len(rows)}条数据')
  16. return rows
  17. def filter_by_title(self, filter_list):
  18. """
  19. 根据 filter_list 中的元素模糊匹配 title 字段,并打印匹配的结果
  20. :param filter_list: 包含需要匹配的关键词的列表
  21. """
  22. if not filter_list:
  23. print("filter_list 为空,未进行匹配。")
  24. return
  25. # 构建 SQL 的 WHERE 条件
  26. like_conditions = " OR ".join(["Title LIKE ?"] * len(filter_list))
  27. query = f"SELECT * FROM CL WHERE {like_conditions}"
  28. # 构建参数列表,每个关键词前后加上 % 用于模糊匹配
  29. params = [f'%{keyword}%' for keyword in filter_list]
  30. # 执行查询
  31. self.cursor.execute(query, params)
  32. matched_rows = self.cursor.fetchall()
  33. # 打印匹配的结果
  34. if matched_rows:
  35. print("\n匹配到的结果:")
  36. for row in matched_rows:
  37. print(
  38. f"ID: {row[0]}, Tag: {row[5]}, Full_URL: {row[2]}, Title: {row[4]}")
  39. print(f"匹配到的总行数: {len(matched_rows)}")
  40. else:
  41. print("没有匹配到任何结果。")
  42. def close(self):
  43. """关闭数据库连接"""
  44. if self.conn:
  45. self.conn.close()
  46. # 使用示例
  47. if __name__ == "__main__":
  48. filter_list = ['']
  49. db = CLDatabase()
  50. db.connect()
  51. db.filter_by_title(filter_list)
  52. db.fetch_all_data()
  53. db.close()