# dy_xhs_下拉词 **Repository Path**: lznode/dyxhs-dropdown-word ## Basic Information - **Project Name**: dy_xhs_下拉词 - **Description**: 本项目是一个用于抓取抖音和小红书下拉词的工具。通过模拟浏览器操作,监听网络请求,实现了对特定关键词的下拉词数据的抓取,并将结果保存到本地文件中。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-02-11 - **Last Updated**: 2025-04-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 抖音和小红书下拉词抓取工具 ## 项目概述 本项目是一个用于抓取抖音和小红书下拉词的工具。通过模拟浏览器操作,监听网络请求,实现了对特定关键词的下拉词数据的抓取,并将结果保存到本地文件中。 ## 功能特点 - **文件选择**:使用`tkinter`库提供的文件选择对话框,方便用户选择包含关键词的文本文件。 - **浏览器自动化**:利用`DrissionPage`库实现浏览器自动化,模拟用户在抖音和小红书搜索框输入关键词的操作。 - **网络请求监听**:监听浏览器发送的网络请求,捕获包含下拉词数据的数据包。 - **数据处理**:对抓取到的下拉词数据进行去重处理,并保存到本地文件中。 - **多次查询**:支持对抓取结果进行二次查询,以获取更全面的下拉词数据。 ## 环境要求 - Python 3.x - 安装所需的Python库:`DrissionPage`、`tkinter`、`urllib`(通常Python自带)。可以使用以下命令安装`DrissionPage`: ```bash pip install DrissionPage ``` ## 使用方法 1. **准备工作**: - 在项目根目录下创建一个名为`chrome_path.txt`的文件,文件内容为你电脑内Chrome可执行文件的路径。 - 准备一个包含关键词的文本文件,每个关键词占一行。 2. **运行脚本**: - 确保已经安装了所有依赖库。 - 在终端中运行脚本: ```bash python 抖音下拉.py ``` 3. **操作步骤**: - 程序运行后,会弹出一个文件选择对话框,选择包含关键词的文本文件。 - 程序会自动读取Chrome可执行文件的路径,并打开Chrome浏览器访问抖音或小红书的搜索页面。 - 程序会依次输入关键词,监听网络请求,抓取下拉词数据,并保存到本地文件中。 - 第一次查询完成后,程序会对抓取到的数据进行去重处理,并保存到另一个文件中。 - 如果第一次查询结果文件存在,程序会进行第二次查询,以获取更全面的下拉词数据。 ## 代码结构 ### 主要函数说明 - `save_to_txt(filename, list_to_save)`:将列表中的元素逐行写入指定文件。 - `open_file_dialog()`:弹出文件选择对话框,让用户选择包含关键词的文本文件,并返回文件内容。 - `chrom_page()`:初始化Chromium浏览器,设置浏览器路径,打开指定网页,并返回浏览器页面对象。 - `get_xhs_list(page_driver, keyword)`:获取小红书下拉词列表。 - `get_xhs_list(page_driver, keyword)`(抖音部分):获取抖音下拉词列表。 ### 主程序逻辑 - 检查并创建保存结果的文件夹。 - 读取Chrome可执行文件的路径。 - 打开文件选择对话框,获取关键词列表。 - 初始化浏览器,依次输入关键词,抓取下拉词数据。 - 对抓取到的数据进行去重处理,并保存到本地文件中。 - 如果第一次查询结果文件存在,进行第二次查询。 ## 注意事项 - 请确保`chrome_path.txt`文件中包含正确的Chrome可执行文件路径。 - 由于网络请求监听和浏览器自动化操作可能会受到网络环境和网站反爬机制的影响,程序可能会出现异常。如果出现异常,程序会打印错误信息,并尝试重新执行相关操作。 - 本项目仅供学习和研究使用,请勿用于商业用途。 ## 许可证 本项目采用[MIT许可证](https://opensource.org/licenses/MIT),你可以自由使用、修改和分发本项目的代码,但请保留原作者的版权信息。 ## 联系方式 如果你在使用过程中遇到任何问题或有任何建议,欢迎通过以下方式联系我: - 邮箱:[your_email@example.com](mailto:your_email@example.com) - GitHub:[your_github_username](https://github.com/your_github_username)