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

2022-04-14 17:07:24 +08:00
 neearai

如题,

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

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

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

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

3681 次点击
所在节点    Python
18 条回复
westoy
2022-04-14 17:09:48 +08:00
有没有一种可能, 它要 cookie 就是为了反爬的?

它这个又不要登录, 最简单的直接上个无头浏览器啊
AoEiuV020CN
2022-04-14 17:17:00 +08:00
无头浏览器+1
看了眼这个登录流程好复杂,接连跳转 10 次,感觉模拟会很困难,
musi
2022-04-14 17:19:54 +08:00
musi
2022-04-14 17:20:32 +08:00
AoEiuV020CN
2022-04-14 17:20:38 +08:00
还真有, 看了下一个站友爬的微博热搜榜,用的是这个地址,
https://m.weibo.cn/api/container/getIndex?containerid=106003type%3D25%26t%3D3%26disable_hot%3D1%26filter_type%3Drealtimehot
nba2k9
2022-04-14 17:21:25 +08:00
m.weibo.cn
我用这个地址刷微博
BaseException
2022-04-14 17:32:40 +08:00
我写过这个 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
2022-04-14 17:32:43 +08:00
@westoy @AoEiuV020CN 我是线上的 k8s 运行环境,还没学过无头浏览器呢~ 研究研究
@musi @AoEiuV020CN 谢谢,你们给的接口挺好的

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

确实是推送频率过高,之后考虑改变一下。我想着应该就是因为推送频率过高现在订阅的人一直没上百 😂️ ( 90+徘徊好久了,哈哈)
neearai
2022-04-14 17:44:07 +08:00
@BaseException 哈哈,瞎给建议的话,是不是可以进行一些降噪?全部内容的每天只推一次,然后每个小时推送一下,相比上小时的飙升榜,新进榜内容就可以了?
BaseException
2022-04-14 17:54:25 +08:00
@neearai 感谢建议,有些启发的,每小时只推新的热搜也是一种思路。之前想过定制推送间隔,但不实际。
sunmker
2022-04-15 08:51:25 +08:00
我昨天忘了一个脚本帮女友微博超话签到,我发现都不需要登录状态就可以签到 只需要一串相关的 get 请求的 url 就可以了
ch2
2022-04-15 09:24:49 +08:00
用 Chrome 浏览器挂机,然后用 js 插件定时把每天的 cookie 刷新并上传到你的数据库里,这样你随时都能用到最新的 cookie ,适用于大部分需要登录但是可以保持登录态的网站
uianz
2022-04-15 11:57:14 +08:00
微博有个单点登录接口可以刷新 cookie ,我用了半年了很稳定
neearai
2022-04-18 17:51:02 +08:00
@uianz 你好,可以请你分享一下这个接口嘛?谢谢
@sunmker 啊?那怎么识别身份信息呢。。。
@ch2 js 不太会= =,不过这种动态配置的思路倒是挺好的,谢谢
sunmker
2022-04-18 19:42:01 +08:00
caicai123456
2023-02-14 10:01:41 +08:00
@sunmker 這個用的 ROW_URL 就相當於是 cookie 了呀

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/846976

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX