update_feed.py 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. # -*- coding: utf-8 -*-
  2. import time
  3. from playwright.sync_api import sync_playwright
  4. import psycopg2
  5. def run(playwright):
  6. browser = playwright.webkit.launch(headless=True)
  7. context = browser.new_context()
  8. page = context.new_page()
  9. page.goto('https://rss.erhe.top/')
  10. page.fill('#username', 'toor')
  11. page.fill('#passwordPlain', '!QAZ2wsx+0913')
  12. page.click('#loginButton')
  13. time.sleep(4)
  14. for i in range(1, 300):
  15. try:
  16. page.goto(f'https://rss.erhe.top/i/?c=feed&a=actualize&id={i}')
  17. title = page.title()
  18. if '首页' in title:
  19. continue
  20. print(f'{title} 更新成功')
  21. except Exception as e:
  22. print(f'{i} 更新失败')
  23. time.sleep(1)
  24. context.close()
  25. browser.close()
  26. print('rss订阅源更新完成')
  27. def check_data_count():
  28. # 数据库连接参数
  29. db_params = {
  30. 'dbname': 'freshrss',
  31. 'user': 'freshrss',
  32. 'password': 'freshrss',
  33. 'host': 'erhe.top',
  34. 'port': '20788'
  35. }
  36. # SQL 查询语句
  37. query = 'SELECT COUNT(*) FROM freshrss_toor_entry;'
  38. try:
  39. # 建立数据库连接
  40. conn = psycopg2.connect(**db_params)
  41. # 创建 cursor 对象
  42. cur = conn.cursor()
  43. # 执行 SQL 查询
  44. cur.execute(query)
  45. # 获取查询结果
  46. records = cur.fetchall()
  47. count_num = records[0][0]
  48. print(f'\n\nfreshrss_toor_entry 表共有数据数量为: {count_num}')
  49. except psycopg2.Error as e:
  50. print(f"Database error: {e}")
  51. conn.rollback()
  52. except Exception as e:
  53. print(f"An error occurred: {e}")
  54. finally:
  55. # 关闭 cursor 和连接
  56. if 'cur' in locals():
  57. cur.close()
  58. if 'conn' in locals():
  59. conn.close()
  60. def read_ids():
  61. ids = []
  62. # 数据库连接参数
  63. db_params = {
  64. 'dbname': 'freshrss',
  65. 'user': 'freshrss',
  66. 'password': 'freshrss',
  67. 'host': 'erhe.top',
  68. 'port': '20788'
  69. }
  70. # SQL 查询语句
  71. query = 'SELECT id, url FROM freshrss_toor_feed order by id ASC;'
  72. try:
  73. # 建立数据库连接
  74. conn = psycopg2.connect(**db_params)
  75. # 创建 cursor 对象
  76. cur = conn.cursor()
  77. # 执行 SQL 查询
  78. cur.execute(query)
  79. # 获取查询结果
  80. records = cur.fetchall()
  81. for record in records:
  82. id, url = record
  83. print(id, url)
  84. ids.append(id)
  85. except psycopg2.Error as e:
  86. print(f"Database error: {e}")
  87. conn.rollback()
  88. except Exception as e:
  89. print(f"An error occurred: {e}")
  90. finally:
  91. # 关闭 cursor 和连接
  92. if 'cur' in locals():
  93. cur.close()
  94. if 'conn' in locals():
  95. conn.close()
  96. if ids:
  97. return ids
  98. else:
  99. return None
  100. if __name__ == '__main__':
  101. ids = read_ids()
  102. if not ids:
  103. print('未获取到订阅源id, 程序退出')
  104. exit(0)
  105. # with sync_playwright() as playwright:
  106. # run(playwright)
  107. #
  108. # check_data_count()