req_api.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. import requests
  2. from requests import Request,Response
  3. import DrissionPage
  4. import douyin.cookies as cookies
  5. from conf.config import logger
  6. import jsonpath
  7. params = {
  8. "url": "https://www.douyin.com/note/12345678910",
  9. "source": True
  10. }
  11. def get_user_info():
  12. row = cookies.get_from_table()
  13. params = {
  14. "url": "https://www.douyin.com/user/MS4wLjABAAAAQ6pjxWtdMnxF3LjL6oAGNuU-irhAXJNhhCACx2fTo_IHERUBDVrJJiWCfZQmLi0S",
  15. "source": "true",
  16. "cookie": row['cookies'],
  17. "token": None
  18. }
  19. # response = requests.post("http://10.0.0.12:5000/user/", json=params)
  20. # http://192.168.2.11:5000
  21. response = requests.post("http://192.168.2.11:5000/user/", json=params)
  22. if 200 == response.status_code:
  23. logger.info(f"{response.json()}")
  24. else:
  25. logger.error(f"{response.status_code}: {response.raw}")
  26. '''
  27. 直播推流数据接口
  28. 获取直播推流数据
  29. 请求接口:/live/
  30. 请求参数
  31. {
  32. "url": "直播链接,支持多直播,字符串,必需参数",
  33. "source": "是否返回原始数据,布尔值,可选参数,默认值: false",
  34. "cookie": "抖音 cookie,字符串,可选参数",
  35. "token": "自定义参数"
  36. }
  37. 响应参数
  38. {
  39. "data": [
  40. "直播数据-1,JSON 格式",
  41. "直播数据-2,JSON 格式",
  42. "..."
  43. ],
  44. "message": "success"
  45. }'''
  46. def rq_live_url():
  47. row = cookies.get_from_table()
  48. params = {
  49. # "url": "https://live.douyin.com/137439305439",
  50. "url": "https://live.douyin.com/660292215268",
  51. "source": True,
  52. "cookie": row['cookies'],
  53. "token": None
  54. }
  55. response = requests.post("http://localhost:5000/live/", json=params)
  56. logger.info(f"{response.status_code}")
  57. if 200 == response.status_code:
  58. data = response.json()
  59. logger.info(f"{data}")
  60. return data
  61. def get_anchor(data:dict):
  62. status_code = jsonpath.jsonpath(data, '$...status_code')
  63. if status_code and status_code[0] != 0:
  64. logger.info(f"响应错误:{data}")
  65. return None
  66. user = jsonpath.jsonpath(data, '$...user')[0]
  67. logger.info(f"user {user}")
  68. nickname = user.get("nickname")
  69. room_view_stats = jsonpath.jsonpath(data, '$...room_view_stats')[0]
  70. if not room_view_stats:
  71. logger.info(f"{nickname} 没有开启直播")
  72. return
  73. logger.info(f"room_view_stats {room_view_stats}")
  74. display_value = room_view_stats.get("display_value")
  75. anchor = room_view_stats.get("display_long_anchor")
  76. ret = f"主播: {nickname} | {anchor} ({display_value})"
  77. logger.info(ret)
  78. return ret
  79. def get_live_data(url):
  80. display_value, anchor = get_anchor(data.get("data")[0])
  81. name = data.get("user").get("nickname")
  82. ret = f"主播: {name} | {anchor} ({display_value})"
  83. from faker import Faker
  84. def main():
  85. # res = cookies.get_from_table()
  86. # logger.info(f"{res}")
  87. rq_live_url()
  88. # get_user_info()
  89. # fake = Faker()
  90. # name = fake.user_agent()
  91. # print(name)
  92. if __name__ == "__main__":
  93. main()