MeidiaCrawler初体验——一个cs小白的尝试

3 阅读3分钟

MeidiaCrawler初体验——一个cs小白的尝试

下载/运行

  • 第一次下载:

使用浏览器访问:github.com/NanmiCoder/… ,下载 ZIP 文件 ,随后解压到本地D盘 。

  • 已下载直接运行:

打开终端,在项目文件夹 D:\MediaCrawler\MediaCrawler-main 中,按住Shift键并右键点击空白处,选择 “在此处打开PowerShell窗口” 或 “在此处打开命令提示符窗口”。

配置/激活环境

  • 进入项目目录 cd /path/to/MediaCrawler/MediaCrawler-main
  • 创建虚拟环境(推荐) python -m venv venv
  • 激活虚拟环境

Windows系统: venv\Scripts\activate

在这里可能会有Windows PowerShell 执行策略限制,如:

  • PS D:\MediaCrawler> venv\Scripts\activate venv\Scripts\activate : 无法加载文件 D:\MediaCrawler\venv\Scripts\Activate.ps1,因为在此系统上禁止运行脚本。有关详细信 息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。 所在位置 行:1 字符:
  • 临时允许脚本执行后(仅当前会话),再激活虚拟环境

所以可以这样激活

Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process

venv\Scripts\activate

Linux/Mac系统: source venv/bin/activate

如果安装失败,请确认你的Python版本

python --version

如果输出是 Python 3.13.x 或更高,可以降低python的版本至3.11.x 版本

流程如下:

第一步:确保安装了Python 3.11

访问 Python官网: www.python.org/downloads/

找到 Python 3.11.x 版本(例如 3.11.9)的Windows安装包并下载。

运行安装程序,务必勾选 “Add python.exe to PATH”,然后安装。

第二步:创建并激活基于Python 3.11的新虚拟环境 在你的项目目录D:\MediaCrawler\MediaCrawler-main 中操作:

先停用之前的

deactivate

使用 python3.11(或你安装的3.11.x版本)创建环境

python3.11 -m venv venv311

激活新环境

venv311\Scripts\activate

运行

可以先查看具体命令:

python main.py --help

第一次运行前的建议

  1. 先运行一个简单的测试 powershell

    测试爬取少量数据(小红书,搜索"测试")

    python main.py --platform xhs --type search --keywords "测试" --start 1

  2. 如果平台需要登录(如抖音/微博) 二维码登录:运行命令后会显示二维码,用手机APP扫描

    Cookie登录:需要先获取Cookie,然后通过 --cookies "你的cookie值" 参数传入

  3. 查看数据输出 默认会保存在项目目录的 output 或 data 文件夹中,格式取决于 --save_data_option 参数。

数据抓取时可能会将两次不同关键词的抓取内容放在一起,想要进行区分可以这样操作

我们只需要在 tools/async_file_writer.py 文件的最顶部添加一个任务名变量,然后修改 _get_file_path 方法中的 base_path 即可。

!!!每次运行新任务前,手动修改此行!!!

TASK_NAME = "美国斩杀线"

import asyncio import csv import json import os import pathlib from typing import Dict, List import aiofiles import config from tools.utils import utils from tools.words import AsyncWordCloudGenerator

class AsyncFileWriter: def _init(self, platform: str, crawler_type: str): self.lock = asyncio.Lock() self.platform = platform self.crawler_type = crawler_type self.wordcloud_generator = AsyncWordCloudGenerator() if config.ENABLE_GET_WORDCLOUD else None

def _get_file_path(self, file_type: str, item_type: str) -> str:

修改前:base_path = f"data/{self.platform}/{file_type}"

修改后 ↓↓↓

base_path = f"data/{TASK_NAME}/{self.platform}/{file_type}" pathlib.Path(base_path).mkdir(parents=True, exist_ok=True) file_name = f"{self.crawler_type} {item_type} {utils.get_current_date()}.{file_type}" return f"{base_path}/{file_name}"

这样只要在每次使用前,更改第一行的关键词就可以将不同关键词的数据分类存放。