Tôi vô tình nhìn thấy một loạt bảng xếp hạng trên nền tảng tạo Douyin, chẳng hạn như danh sách tìm kiếm hot, danh sách video nổi tiếng, danh sách ngôi sao giải trí, danh sách ca nhạc, v.v.
Giao diện danh sách
Video phổ biến trong ngày
import requests
hot_video_url = 'https://creator.douyin.com/aweme/v1/creator/data/billboard/?billboard_type=4'
headers = {
"user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36",
"referer": "https://creator.douyin.com/billboard/hot_aweme"
}
response = requests.get(url=hot_video_url, headers=headers).json()
print(response)
123456789101112
Nhận chi tiết video
Trong dữ liệu trả về các bạn có thể thấy không có nội dung chi tiết của video mà chỉ có tên tác giả auhor, ảnh nền video img_url, link trang chia sẻ, thứ hạng thứ hạng, tiêu đề, giá trị phổ biến.
Khi bạn muốn nhận thêm thông tin video, chẳng hạn như lượt thích, lượt đăng lại, nhận xét hoặc thông tin tác giả, bạn cần lấy dữ liệu thông qua các giao diện khác.
Ở đây mình chọn ngẫu nhiên một liên kết chia sẻ Link:https://www.iesdouyin.com/share/video/6844023242781412622/?region=CN&mid=6844023258854345479&u_code=0&titleType=title
Ví dụ mã
Trước tiên, tải bộ sưu tập "Video Hot của Ngày hôm nay", sau đó trích xuất item_ids tương ứng với mỗi video, sau đó lấy dữ liệu video chi tiết theo id
# -*- coding: utf-8 -*-
import requests
import re
hot_video_url = 'https://creator.douyin.com/aweme/v1/creator/data/billboard/?billboard_type=4'
headers = {
"user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36",
"referer": "https://creator.douyin.com/billboard/hot_aweme"
}
response = requests.get(url=hot_video_url, headers=headers).json()
for video in response['billboard_data']:
link = video['link'] # 分享页链接
title = video['title'] # 视频标题
rank = (video['rank']) # 当前排名
hot_value = video['value'] # 当前热度
items_ids = re.findall('video/(.*?)/', link)[0] # 获取详情数据需要的id
video_detail_url = 'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids={}'.format(items_ids)
detail = requests.get(video_detail_url,headers=headers).json()
print(detail['item_list'][0]['share_url'])
break # 只取1条,示例
Đăng nhận xét