前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用python开发的抖音关键词搜索采集软件

用python开发的抖音关键词搜索采集软件

原创
作者头像
马哥小迷弟132
发布2024-07-07 07:22:59
1391
发布2024-07-07 07:22:59
举报
文章被收录于专栏:抖音采集软件抖音采集软件
采集目的:抖音关键词搜索结果
采集目的:抖音关键词搜索结果

抖音作为国内颇受欢迎的短视频社交平台,汇聚了大量用户群体和活跃用户。分析抖音上的热门视频可用于市场调研和竞品分析,帮助了解流行内容和趋势,从而为企业制定营销策略和推广方案提供参考。同时,抖音也可作为灵感源泉,帮助内容创作者发现新的创意和内容方向。

为了实现这一目标,我使用Python开发了一个爬虫采集软件,可根据关键词抓取抖音视频数据。

为了方便不熟悉编程的用户和文科专业人士使用,我开发了一个图形界面软件,用户无需安装Python,也无需更改代码,只需双击打开即可使用!

软件运行界面如下所示:

软件运行界面
软件运行界面

在软件运行过程中,显示了部分数据采集结果,如下图所示:

部分爬取结果
部分爬取结果

此外,我还制作了一段演示视频,展示软件的具体使用过程,供非IT领域从业者参考:【软件演示】Python编写的抖音关键词搜索采集工具。

有几点重要说明需要特别指出:

工具说明
工具说明

在软件的代码解析中,通过定义请求地址和请求头部等参数,模拟浏览器发送请求,并获取抖音视频数据。为了方便用户了解软件运行情况和历史记录,还包含了日志模块,可记录软件运行的详细信息。

请求地址:(目标链接)

代码语言:txt
复制
# 请求地址
url = 'https://www.douyin.com/aweme/v1/web/search/item/'

请求头:(模拟浏览器)

代码语言:txt
复制
# 请求头
h1 = {
	"Accept": 'application/json, text/plain, */*',
	"Accept-Encoding": "gzip, deflate",
	"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
	"Cookie": self.cookie_val,
	"Referer": "",
	"Sec-Ch-Ua": 'Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120',
	"Sec-Ch-Ua-Mobile": "?0",
	"Sec-Ch-Ua-Platform": "Windows",
	"Sec-Fetch-Dest": "empty",
	"Sec-Fetch-Mode": "cors",
	"Sec-Fetch-Site": "same-origin",
	"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}

请求参数:(爬取条件)

代码语言:txt
复制
# 请求参数
params = {
	"device_platform": "webapp",
	"aid": "6383",
	"channel": "channel_pc_web",
	"search_channel": "aweme_video_web",
	"sort_type": self.trans_sort_type(v_str=self.sort_type),
	"publish_time": self.trans_time_range(v_str=self.time_range),
	"keyword": search_keyword,
	"search_source": "tab_search",
	"query_correct_type": "1",
	"is_filter_search": "1",
	"from_group_id": "",
	"offset": cursor,
	"count": "20",
	"pc_client_type": "1",
	"version_code": "170400",
	"version_name": "17.4.0",
	"cookie_enabled": "true",
	"screen_width": "1536",
	"screen_height": "864",
	"browser_language": "zh-CN",
	"browser_platform": "Win32",
	"browser_name": "Chrome",
	"browser_version": "120.0.0.0",
	"browser_online": "true",
	"engine_name": "Blink",
	"engine_version": "120.0.0.0",
	"os_name": "Windows",
	"os_version": "10",
	"cpu_core_num": "8",
	"device_memory": "8",
	"platform": "PC",
	"downlink": "10",
	"effective_type": "4g",
	"round_trip_time": "50",
	"webid": "7249265465250973217",
	"msToken": "Sx2PzLIz0YGvM_wrIkaUaaeUb1JUutgo3ERiWmwV1w6VC1naW15lFM6N3nanMZRZYfaHLvXrDNzGqkAyvvCpdO3d6u0u_kNmmZZHeMIsDqga2eWnjTzp5g==",
	"X-Bogus": ""
}

发送请求:(相当于浏览器访问dy页面的过程)

代码语言:txt
复制
# 发送请求
r = requests.get(url, headers=h1, params=params)
# 以json格式接收返回数据
json_data = r.json()

解析响应数据:

代码语言:txt
复制
for v in video_list:
	# 视频标题
	title = v['aweme_info']['desc']
	self.tk_show('视频标题:' + title)
	title_list.append(title)

保存解析结果到csv文件:

代码语言:txt
复制
# 保存数据到DF
df = pd.DataFrame(
	{
		'关键词': search_keyword,
		'页码': page,
		'视频标题': title_list,
		'视频链接': link_list,
		'作者昵称': author_name_list,
		'抖音号': author_id_list,
		'作者链接': author_link_list,
		'作者粉丝数': follower_count_list,
		'发布时间': create_time_list,
		'点赞数': like_count_list,
		'评论数': comment_count_list,
		'收藏数': collect_count_list,
		'转发数': share_count_list,
	}
)
df.to_csv(self.result_file, mode='a+', index=False, header=header, encoding='utf_8_sig')
self.tk_show('保存csv文件成功')

日志实现逻辑:

代码语言:txt
复制
def get_logger(self):
	self.logger = logging.getLogger(__name__)
	# 日志格式
	formatter = '[%(asctime)s-%(filename)s][%(funcName)s-%(lineno)d]--%(message)s'
	# 日志级别
	self.logger.setLevel(logging.DEBUG)
	# 控制台日志
	sh = logging.StreamHandler()
	log_formatter = logging.Formatter(formatter, datefmt='%Y-%m-%d %H:%M:%S')
	# info日志文件名
	info_file_name = time.strftime("%Y-%m-%d") + '.log'
	# 将其保存到特定目录,ap方法就是寻找项目根目录,该方法博主前期已经写好。
	case_dir = r'./logs/'
	info_handler = TimedRotatingFileHandler(filename=case_dir + info_file_name,
						when='MIDNIGHT',
						interval=1,
						backupCount=7,
						encoding='utf-8')

以上就是全部重要实现代码啦。

最后,本文首发于公号【老男孩的平凡之路】,欢迎大家交流!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档