__init__.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import requests
  2. import time
  3. import random
  4. # 获取网页原数据
  5. def get_json(url):
  6. headers = {
  7. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}
  8. params = {
  9. 'page_size': '10',
  10. 'next_offset': str(num),
  11. 'tag': '今日热门',
  12. 'platform': 'pc',
  13. }
  14. try:
  15. html = requests.get(url, headers=headers, params=params)
  16. return html.json()
  17. except:
  18. print("请求错误")
  19. pass
  20. # 下载视频
  21. def downloader(url, path):
  22. start = time.time() # 开始时间
  23. size = 0
  24. headers = {
  25. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}
  26. response = requests.get(url, headers, stream=True) # stream属性必须带上
  27. chunk_size = 1024 # 每次下载的数据大小
  28. content_size = int(response.headers['content-length']) # 总大小
  29. if response.status_code == 200:
  30. print('[文件大小]:%0.2fMB' % (content_size / chunk_size / 1024)) # 换算单位
  31. with open(path, 'wb')as f:
  32. for data in response.iter_content(chunk_size=chunk_size):
  33. f.write(data)
  34. size += len(data)
  35. if __name__ == '__main__':
  36. for i in range(10):
  37. url = 'http://101.133.210.230:5555/elab-marketing-user//activityProduction/like'
  38. num = i * 10 + 1
  39. html = get_json(url)
  40. infos = html['data']['items']
  41. for info in infos:
  42. title = info['item']['description'] # 小视频的标题
  43. video_url = info['item']['video_playurl'] # 视频地址
  44. print(title, video_url)
  45. # 为了防止视频没有video_url
  46. try:
  47. downloader(video_url, path="%s.mp4" % title)
  48. print("成功下载一个")
  49. except BaseException:
  50. print("下载失败")
  51. pass
  52. time.sleep(int(format(random.randint(2, 8)))) # 设置随机等待时间