mysql.py 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. """
  2. @author: luojunhui
  3. """
  4. import json
  5. import time
  6. import pymysql
  7. from applications.functions.log import logging
  8. def select_download_videos(trace_id):
  9. """
  10. 查询
  11. :param trace_id:
  12. :return:
  13. """
  14. sql = "select video_id from crawler_video where out_user_id = '{}' and video_title = '{}';".format(trace_id,
  15. trace_id)
  16. connection = pymysql.connect(
  17. host="rm-bp1159bu17li9hi94.mysql.rds.aliyuncs.com", # 数据库IP地址,内网地址
  18. port=3306, # 端口号
  19. user="crawler", # mysql用户名
  20. passwd="crawler123456@", # mysql用户登录密码
  21. db="piaoquan-crawler", # 数据库名
  22. charset="utf8mb4" # 如果数据库里面的文本是utf8编码的,charset指定是utf8
  23. )
  24. cursor = connection.cursor()
  25. cursor.execute(sql)
  26. out_video_list = cursor.fetchall()
  27. if len(out_video_list) > 0:
  28. if out_video_list[0][0] == 0:
  29. video_id = search_id_to_video(trace_id)
  30. else:
  31. video_id = out_video_list[0][0]
  32. vid_list = [video_id]
  33. logging(
  34. code="2003",
  35. trace_id=trace_id,
  36. info="recall_search_list",
  37. function="find_videos_in_mysql",
  38. data=vid_list
  39. )
  40. return {
  41. "search_videos": "success",
  42. "trace_id": trace_id,
  43. "video_list": vid_list
  44. }
  45. else:
  46. return {
  47. "search_videos": "failed",
  48. "trace_id": trace_id,
  49. "video_list": []
  50. }
  51. def select_pq_videos():
  52. """
  53. 查询
  54. :return: info_list
  55. """
  56. connection = pymysql.connect(
  57. host="rm-bp1k5853td1r25g3n690.mysql.rds.aliyuncs.com", # 数据库IP地址,内网地址
  58. port=3306, # 端口号
  59. user="wx2016_longvideo", # mysql用户名
  60. passwd="wx2016_longvideoP@assword1234", # mysql用户登录密码
  61. db="incentive", # 数据库名
  62. charset="utf8mb4" # 如果数据库里面的文本是utf8编码的,charset指定是utf8
  63. )
  64. sql = "select video_id, key_words, search_keys, extra_keys from video_content"
  65. cursor = connection.cursor()
  66. cursor.execute(sql)
  67. data = cursor.fetchall()
  68. result = [
  69. {
  70. "video_id": line[0],
  71. "key_words": json.loads(line[1]),
  72. "search_keys": json.loads(line[2]),
  73. "extra_keys": json.loads(line[3]),
  74. }
  75. for line in data
  76. ]
  77. return result
  78. # 敏感词
  79. def select_sensitive_words():
  80. """
  81. sensitive words
  82. :return:
  83. """
  84. connection = pymysql.connect(
  85. host="rm-bp1k5853td1r25g3n690.mysql.rds.aliyuncs.com", # 数据库IP地址,内网地址
  86. port=3306, # 端口号
  87. user="wx2016_longvideo", # mysql用户名
  88. passwd="wx2016_longvideoP@assword1234", # mysql用户登录密码
  89. db="longvideo", # 数据库名
  90. charset="utf8mb4" # 如果数据库里面的文本是utf8编码的,charset指定是utf8
  91. )
  92. sql = "select `keyword` from wx_sensitive_word where `data_status` = 0"
  93. cursor = connection.cursor()
  94. cursor.execute(sql)
  95. data = cursor.fetchall()
  96. result = [line[0] for line in data]
  97. return result
  98. def search_id_to_video(trace_id):
  99. """
  100. 通过 search_id 返回 video_id
  101. :param trace_id:
  102. :return:
  103. """
  104. sql = "select video_id from crawler_video where out_user_id = '{}' and video_title = '{}';".format(trace_id,
  105. trace_id)
  106. connection = pymysql.connect(
  107. host="rm-bp1159bu17li9hi94.mysql.rds.aliyuncs.com", # 数据库IP地址,内网地址
  108. port=3306, # 端口号
  109. user="crawler", # mysql用户名
  110. passwd="crawler123456@", # mysql用户登录密码
  111. db="piaoquan-crawler", # 数据库名
  112. charset="utf8mb4" # 如果数据库里面的文本是utf8编码的,charset指定是utf8
  113. )
  114. cursor = connection.cursor()
  115. cursor.execute(sql)
  116. out_video_list = cursor.fetchall()
  117. if int(out_video_list[0][0]) == 0:
  118. time.sleep(1)
  119. return search_id_to_video(trace_id)
  120. else:
  121. return out_video_list[0][0]