V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
lake325
V2EX  ›  程序员

go 爬取 baidu+weibo+zhihu 热搜数据

  •  
  •   lake325 · 2019 年 9 月 24 日 · 3588 次点击
    这是一个创建于 2322 天前的主题,其中的信息可能已经有所发展或是发生改变。
    https://github.com/mjrao/hotso

    样例演示接口返回 json 数据,可在 chrome 中安装 json formatter 获得极简的热搜体验
    15 条回复    2019-12-13 13:06:48 +08:00
    lake325
        1
    lake325  
    OP
       2019 年 9 月 24 日
    有关注热搜需求的可以浏览器 收藏夹收藏

    微博: http://121.41.23.201:8806/hotso/v1/hotso/weibo/json/20
    百度: http://121.41.23.201:8806/hotso/v1/hotso/baidu/json/20
    知乎: http://121.41.23.201:8806/hotso/v1/hotso/zhihu/json/20

    一小时更新一次数据
    lake325
        2
    lake325  
    OP
       2019 年 9 月 24 日
    url 后面数字对应你想取的数据条数
    evilic
        3
    evilic  
       2019 年 9 月 25 日 via Android
    直接写个 workflow (捷径)获取数据并显示,然后分享也来吧。
    hebin
        4
    hebin  
       2019 年 9 月 25 日
    fork 了一份学习了 谢谢老哥
    lake325
        5
    lake325  
    OP
       2019 年 9 月 25 日
    http://121.41.23.201:8806/hotso/v1/hotword/weibo/json/100

    http://121.41.23.201:8806/hotso/v1/hotword/baidu/json/100

    通过结巴分词将热搜分词得到的数据,每天统计一次,数据递增(采用的是默认字典,精确模式)
    lake325
        6
    lake325  
    OP
       2019 年 9 月 25 日
    @evilic 仓库的 readme 有介绍
    Vegetable
        7
    Vegetable  
       2019 年 9 月 25 日
    你就不能 encodePretty 返回吗...
    lake325
        8
    lake325  
    OP
       2019 年 9 月 25 日
    @Vegetable 已改
    Vegetable
        9
    Vegetable  
       2019 年 9 月 25 日
    @lake325 舒服了~
    Vegetable
        10
    Vegetable  
       2019 年 9 月 25 日
    @lake325 还有一个问题,golang 的 urlencode 库会吧&encode 成\u0026 而不是%26,具体为什么会这样我也不太清楚,但是这个地址复制出来直接粘贴到地址栏浏览器是识别不了&的.你可以考虑处理一下这个
    Vegetable
        11
    Vegetable  
       2019 年 9 月 25 日
    哦不对,%26 也不行,这个必须是&本身才行.
    Vegetable
        12
    Vegetable  
       2019 年 9 月 25 日
    这个问题是 go 默认的 json encoder 会将&转义掉造成的,我看了一下
    ```
    package main

    import (
    "bytes"
    "encoding/json"
    "fmt"
    )

    func main() {
    b := new(bytes.Buffer)
    enc := json.NewEncoder(b)
    enc.SetEscapeHTML(false)
    enc.SetIndent("", " ")
    enc.Encode(map[string]interface{}{"a": "&"})
    fmt.Println(b.String())
    }

    ```
    这样可以解决这个问题.
    lake325
        13
    lake325  
    OP
       2019 年 9 月 25 日
    @Vegetable 已解决
    liangxunli
        14
    liangxunli  
       2019 年 9 月 25 日
    收藏了
    csidez
        15
    csidez  
       2019 年 12 月 13 日
    大佬,url 可以做成链接吗,一点就新 tap 页访问。现在的需要复制过去看
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   910 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 19:45 · PVG 03:45 · LAX 11:45 · JFK 14:45
    ♥ Do have faith in what you're doing.