V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
AllenHua
V2EX  ›  分享创造

分享一个获取 V2EX 『我收藏的主题帖子』的列表的工具

  •  
  •   AllenHua · 2021-07-26 14:45:17 +08:00 · 573 次点击
    这是一个创建于 1209 天前的主题,其中的信息可能已经有所发展或是发生改变。

    由于 v 站我收藏的主题页面 ( https://www.v2ex.com/my/topics) 没有搜索功能,检索比较麻烦。我目前已经收藏了 595 个帖子了,这些帖子往往都是我们认为优质或者对自己十分有用希望后续能够翻阅的帖子。昨天下雨就在家肝了下面这个小项目。把关注的所有帖子的标题以及 url 还有创建时间获取到了。

    项目地址:GetMyV2exTopicsList

    技术栈 Spring Boot,没特别的技术含量,个人还是编程菜🐓️,昨天下雨在家肝了一晚上,今天又稍微完善了下。还是希望大佬们多多鼓励呀 😂️

    希望这个工具对大家都有用。(我甚至挺想看看大家都收藏了哪些帖子,什么样的帖子……

    我收藏的帖子状况

    数据截止 2021-07-26 14:37:57

    收藏有 595 个帖子

    d31db622b9ac789c9944a283884fc37.png

    30 页数据

    35aee511c6072a1762273fd803c9d9f.png

    但是这个页面没有搜索功能,有时候想找一个印象中曾经收藏过的帖子,翻遍了好几页也没找到,甚至找了几页又找了回来,担心看丢。

    效果预览

    导出后在终端当前文件夹下生成 myv2extopicslist.json 文件。下面是一个简单的预览

    9e1bade85988334b0d283d81de51701.png

    使用方法

    1. 获取 v 站的 cookies

    如下图对应的 v 站的 5 个 cookie

    28e1d381b6afadd54d066b50ca26348.png

    2. 下载 jar 包

    去该项目的 release 下载 0.0.1 版本的 jar 包到本地

    3. 本地通过 java -jar 运行

    确保本机安装有 java 8 以上环境。

    打开终端,运行 java -jar .\getv2exmytopics-0.0.1-SNAPSHOT.jar TOTAL_PAGE_NUMBER "A2=aaa" "V2EX_LANG=zhcn" "PB3_SESSION=bbb" "V2EX_TAB=ccc" "V2EX_REFERRER=ddd"

    将对应的 cookie 值替换成你自己的。运行结束后会在终端当前文件夹下生成 myv2extopicslist.json 文件。然后就可以对这个文件方便的检索了

    截图

    20210726135117.png

    20210726135135.png


    注意:

    • TOTAL_PAGE_NUMBER: 打开 https://www.v2ex.com/my/topics 查看收藏的帖子共有多少页。此值需要小于等于你看到的页数。由于没有请求 v 站相应接口获取页数,所以这个值没有最大值校验。但运行时你可以输入 1 2 等只导出第一页或第二页数据
    • cookies 需要写成 "COOKIE_NAME=COOKIE_VALUE" 的形式。在 PowerShell 下需要使用双引号包裹 cookie 的键和值
    • 由于 v 站现在被墙,所以建议你使用科学上网的路由器运行。或者在终端使用临时的代理

    Linux/macOS 下终端创建临时代理

    export https_proxy=http://127.0.0.1:7890
    
    export http_proxy=http://127.0.0.1:7890
    

    Windows 下使用 cmd 或者 PowerShell 创建临时代理

    set http_proxy=http://127.0.0.1:7890
    
    set https_proxy=http://127.0.0.1:7890
    

    后记

    昨天下雨在家刚好在 n1 上装了一个 leanote 服务。发现还可以直接将文章一键发布成博文,挺有意思的。

    我导出了我近期收藏的两页帖子,托管在 n1 上了。

    👉🏻 V2EX 我收藏的帖子列表 https://blog.hellodk.com/blog/post/dk11/v2ex-my-topics

    6 条回复    2021-07-27 16:59:20 +08:00
    AllenHua
        1
    AllenHua  
    OP
       2021-07-26 15:10:32 +08:00
    v 站 COOKIE_VALUE 字符串类型的用双引号包裹了。填入 "COOKIE_NAME=COOKIE_VALUE" 时,需要把 复制过来的 COOKIE_VALUE 两端的双引号去掉
    AllenHua
        2
    AllenHua  
    OP
       2021-07-26 16:14:50 +08:00
    补图

    ![20210726161316.png]( https://cdn.jsdelivr.net/gh/hellodk34/image@main/img/20210726161316.png)

    遇到 Caused by: java.io.EOFException: SSL peer shut down incorrectly 问题建议优先更换代理节点,比如从美国的梯子更换成新加坡的。
    lujjjh
        3
    lujjjh  
       2021-07-26 17:42:12 +08:00   ❤️ 2
    这个用 JS 更方便(练手 Java 为目的除外

    贡献一个 JS 版,粘贴到 Console 运行即可

    https://gist.github.com/lujjjh/b8d30f2be4ae82b858bdc22f4c2767df
    AllenHua
        4
    AllenHua  
    OP
       2021-07-26 18:45:13 +08:00 via iPhone
    @lujjjh #3 挺不错的 感谢分享
    AllenHua
        5
    AllenHua  
    OP
       2021-07-26 20:59:04 +08:00
    @lujjjh #3 获取的数据数量上好像不一样,难道有隐藏的帖子吗。我使用你的脚本获得了 607 条数据。
    lujjjh
        6
    lujjjh  
       2021-07-27 16:59:20 +08:00
    @AllenHua 没有遇到类似的问题,应当是与界面上“主题收藏”数量匹配的,可以打几个 console.log 看看是哪里的原因
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2849 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:00 · PVG 21:00 · LAX 05:00 · JFK 08:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.