V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
neearai
V2EX  ›  Python

求助一个特弱智的问题,爬微博热搜要闻榜怎样可以不需要 cookie 信息?

  •  
  •   neearai · 2022-04-14 17:07:24 +08:00 · 3823 次点击
    这是一个创建于 940 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,

    https://s.weibo.com/top/summary/summary?cate=socialevent 这个地址爬取的话,

    headers 里面必须带 cookie 信息才能获取到热搜内容,

    否则只能获取到一段 js 代码,问题是我想天级常态化地运行这个例行任务,而拿到的 cookie 一两天就过期了。

    有没有更简单的方法或者接口,能不需要 cookie ,直接爬取这个 要闻榜?

    18 条回复    2023-02-14 10:01:41 +08:00
    westoy
        1
    westoy  
       2022-04-14 17:09:48 +08:00   ❤️ 2
    有没有一种可能, 它要 cookie 就是为了反爬的?

    它这个又不要登录, 最简单的直接上个无头浏览器啊
    AoEiuV020CN
        2
    AoEiuV020CN  
       2022-04-14 17:17:00 +08:00   ❤️ 1
    无头浏览器+1
    看了眼这个登录流程好复杂,接连跳转 10 次,感觉模拟会很困难,
    musi
        3
    musi  
       2022-04-14 17:19:54 +08:00   ❤️ 1
    AoEiuV020CN
        5
    AoEiuV020CN  
       2022-04-14 17:20:38 +08:00   ❤️ 1
    还真有, 看了下一个站友爬的微博热搜榜,用的是这个地址,
    https://m.weibo.cn/api/container/getIndex?containerid=106003type%3D25%26t%3D3%26disable_hot%3D1%26filter_type%3Drealtimehot
    nba2k9
        6
    nba2k9  
       2022-04-14 17:21:25 +08:00   ❤️ 1
    m.weibo.cn
    我用这个地址刷微博
    BaseException
        7
    BaseException  
       2022-04-14 17:32:40 +08:00   ❤️ 1
    我写过这个 https://github.com/hellodk34/weibo_hot_search

    微博热搜实时推送的 tg 频道,欢迎关注 https://t.me/weibo_hot_search (借贵楼打个广告了属于是)

    我项目里用的 APIURL: https://m.weibo.cn/api/container/getIndex?containerid=106003type%3D25%26t%3D3%26disable_hot%3D1%26filter_type%3Drealtimehot

    事实上我抓包拿到过南京的同城热搜 url 是 https://m.weibo.cn/api/container/getIndex?gsid=_2A25MfHFWDeRxGeRI4lEW8SfIzjyIHXVtKIOerDV6PUJbgdCOLVHakWpNUs6fGkBZimYWa_d-o_oczkp5q06cv6K1&wm=3333_2001&launchid=10000365 (后面还有一大堆 太长了,感兴趣的可以去源码 MainService.java 里看一下

    其他城市的当然也可以通过抓包获取,这样就可以做同城热搜数据抓取了(我现在做了南京同城热搜推送 一天三次 只推到了个人的一个 tg bot ,微博公开热搜是推送到上面那个推送频道)
    neearai
        8
    neearai  
    OP
       2022-04-14 17:32:43 +08:00
    @westoy @AoEiuV020CN 我是线上的 k8s 运行环境,还没学过无头浏览器呢~ 研究研究
    @musi @AoEiuV020CN 谢谢,你们给的接口挺好的

    @nba2k9 这个地址好像只有热搜,我要的是要闻榜这个子标签呢~
    neearai
        9
    neearai  
    OP
       2022-04-14 17:33:46 +08:00
    @BaseException 哈哈哈我在你的另外一个频道里,但是微博热搜这个没加,因为频率太高了。感谢你提供地 url
    BaseException
        10
    BaseException  
       2022-04-14 17:36:14 +08:00
    @neearai #9 感谢关注。

    确实是推送频率过高,之后考虑改变一下。我想着应该就是因为推送频率过高现在订阅的人一直没上百 😂️ ( 90+徘徊好久了,哈哈)
    neearai
        11
    neearai  
    OP
       2022-04-14 17:44:07 +08:00
    @BaseException 哈哈,瞎给建议的话,是不是可以进行一些降噪?全部内容的每天只推一次,然后每个小时推送一下,相比上小时的飙升榜,新进榜内容就可以了?
    BaseException
        12
    BaseException  
       2022-04-14 17:54:25 +08:00 via iPhone
    @neearai 感谢建议,有些启发的,每小时只推新的热搜也是一种思路。之前想过定制推送间隔,但不实际。
    sunmker
        13
    sunmker  
       2022-04-15 08:51:25 +08:00
    我昨天忘了一个脚本帮女友微博超话签到,我发现都不需要登录状态就可以签到 只需要一串相关的 get 请求的 url 就可以了
    ch2
        14
    ch2  
       2022-04-15 09:24:49 +08:00 via iPhone
    用 Chrome 浏览器挂机,然后用 js 插件定时把每天的 cookie 刷新并上传到你的数据库里,这样你随时都能用到最新的 cookie ,适用于大部分需要登录但是可以保持登录态的网站
    uianz
        15
    uianz  
       2022-04-15 11:57:14 +08:00
    微博有个单点登录接口可以刷新 cookie ,我用了半年了很稳定
    neearai
        16
    neearai  
    OP
       2022-04-18 17:51:02 +08:00
    @uianz 你好,可以请你分享一下这个接口嘛?谢谢
    @sunmker 啊?那怎么识别身份信息呢。。。
    @ch2 js 不太会= =,不过这种动态配置的思路倒是挺好的,谢谢
    sunmker
        17
    sunmker  
       2022-04-18 19:42:01 +08:00   ❤️ 1
    caicai123456
        18
    caicai123456  
       2023-02-14 10:01:41 +08:00
    @sunmker 這個用的 ROW_URL 就相當於是 cookie 了呀
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2624 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 02:55 · PVG 10:55 · LAX 18:55 · JFK 21:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.