| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
本分支保存 2015–2017 年课程项目代码与报告,不是当前知乎数据、可复现研究结论或 可公开发布的数据集。旧 crawler、旧分析脚本和两份报告均作为历史材料保留。
历史流程为:crawler/user.py 写用户、关注与回答问题的制表符文件, crawler/topic.py 写问题—话题文件,zhihu_database.py 在本地构建 SQLite, zhihu_analysis.py 再读取 User、Following 和 UserTopic。
当前边界如下:
要求 Python 3.10+,不需要第三方依赖。输入目录必须同时包含以下 UTF-8 TSV:
| 路径模式 | 每行格式 |
|---|---|
| data/user_* | user_url, user_id, followee_num, follower_num, answer_num, agree_num, thanks_num, layer |
| data/followee_* | user_url, followee_url... |
| data/question_* | user_url, question_id... |
| data/topic/topic_* | question_id, topic... |
表中逗号仅表示字段顺序,实际分隔符均为 tab。请把原始输入和目标数据库放在仓库外 的私有目录;.gitignore 只是最后一道防误提交保护,不是访问控制。
python3 zhihu_database.py \
--source /private/path/to/crawler-data \
--db /private/path/to/zhihu.db建库器会:
默认拒绝覆盖已有数据库。只有明确需要替换指定目标时才加 --replace;失败时旧目标 保持不变,临时数据库会被删除。
crawler/config.example.ini 只是一份空白历史格式示例。真实 crawler/config.ini、 cookie、验证码、数据库、crawler 输出、ZIP 和 Parquet 均被忽略,绝不能提交。 这不表示 crawler 获得支持,也不是登录或抓取指南。
python3 -m unittest discover -s tests -v
python3 -m py_compile zhihu_database.py测试只使用临时目录中的合成用户、关系、问题与话题,覆盖 TSV 契约、包含撇号的文本、 UserTopic 派生、SQLite 完整性、私有文件权限、冲突重复、错误信息不回显字段值、 非法编码、CLI 聚合输出、缺失输入、拒绝意外覆盖、失败原子性与敏感路径忽略规则。 新增的 CI 工作流配置为在 Python 3.10 与 3.12 上执行同一离线测试,不安装或调用 crawler/分析依赖;本轮没有把未运行的远端 CI 当作通过证据。
| Back | FazBrowse Home | New Git URL |