Skip to content

fix(weibo): detail 模式支持传入微博帖子 URL - #978

Open
ybwbqg9379 wants to merge 1 commit into
NanmiCoder:mainfrom
ybwbqg9379:fix/weibo-specified-id-url
Open

fix(weibo): detail 模式支持传入微博帖子 URL#978
ybwbqg9379 wants to merge 1 commit into
NanmiCoder:mainfrom
ybwbqg9379:fix/weibo-specified-id-url

Conversation

@ybwbqg9379

Copy link
Copy Markdown

问题

#914 报告微博 detail 模式传入帖子 URL 时无法爬取。根因在 cmd_arg/arg.py--specified_id 帮助文案声明支持 URL 或 ID,但微博分支把原始输入直接赋给 config.WEIBO_SPECIFIED_ID_LIST,于是 get_note_info_by_id 拼出的详情页地址和评论接口的 id/mid 参数都是整段 URL。Web UI 的表单提交给后端的也是原始 URL,最终经 crawler_manager.py 走同一条 CLI,所以两端表现一致。

修复

参照贴吧已有的 _normalize_tieba_note_id,新增 _normalize_weibo_note_id,覆盖三种常见帖子 URL:

  • https://weibo.com/<uid>/<bid>?refer_flag=...
  • https://m.weibo.cn/detail/<mid>
  • https://m.weibo.cn/status/<bid>

纯 ID 输入保持原样,其他平台分支不受影响。

测试

新增 tests/test_cmd_arg_weibo.py:6 个参数化用例覆盖归一化函数,1 个用例走完整 parse_cmd 验证 config.WEIBO_SPECIFIED_ID_LIST 结果,与现有 test_cmd_arg_tieba.py 结构一致,全部离线。

uv run pytest tests:103 passed。pre-commit 全部通过。

Fixes #914

--specified_id 的帮助文案声明支持完整 URL 或 ID,但微博分支直接把原始输入透传给
config.WEIBO_SPECIFIED_ID_LIST,导致传 URL 时详情页请求和评论接口参数都变成畸形地址。
Web UI 前端虽能识别 ID,提交给后端的仍是原始 URL,所以走的是同一条失败路径。

参照贴吧已有的 _normalize_tieba_note_id,新增 _normalize_weibo_note_id 从
weibo.com/<uid>/<bid>、m.weibo.cn/detail/<mid>、m.weibo.cn/status/<bid> 三种常见
形态中提取帖子 ID,纯 ID 保持原样。补充离线单测覆盖归一化函数与完整 CLI 解析。

Fixes NanmiCoder#914
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[问题] 微博detail 的爬取模式中无法爬取

1 participant