All Projects → nondanee → Weibobatchfollow

nondanee / Weibobatchfollow

Licence: mit
微博批量关注 (转移关注列表)

Labels

Projects that are alternatives of or similar to Weibobatchfollow

Weibo Picture Store
🖼 新浪微博图床 Chrome/Firefox 扩展,支持同步到微相册
Stars: ✭ 624 (+524%)
Mutual labels:  weibo
Nodejs Weibo Login
Nodejs模拟登录新浪微博模块
Stars: ✭ 39 (-61%)
Mutual labels:  weibo
Lxspider
爬虫案例合集。包括但不限于《淘宝、京东、天猫、豆瓣、抖音、快手、微博、微信、阿里、头条、pdd、优酷、爱奇艺、携程、12306、58、搜狐、百度指数、维普万方、Zlibraty、Oalib、小说、招标网、采购网、小红书》
Stars: ✭ 60 (-40%)
Mutual labels:  weibo
Fuck Login
模拟登录一些知名的网站,为了方便爬取需要登录的网站
Stars: ✭ 5,729 (+5629%)
Mutual labels:  weibo
Vuepress Plugin Social Share
📣 Social sharing plugin for VuePress
Stars: ✭ 27 (-73%)
Mutual labels:  weibo
Socialite
Socialite is an OAuth2 Authentication tool. It is inspired by laravel/socialite, you can easily use it without Laravel.
Stars: ✭ 1,026 (+926%)
Mutual labels:  weibo
Weibospider
⚡ A distributed crawler for weibo, building with celery and requests.
Stars: ✭ 4,670 (+4570%)
Mutual labels:  weibo
Weibo Album Crawler
新浪微博相册大图多线程爬虫。
Stars: ✭ 83 (-17%)
Mutual labels:  weibo
Web Oauth App
第三方登录服务 Web OAuth 示例
Stars: ✭ 30 (-70%)
Mutual labels:  weibo
Dragtodismiss Pangesture
仿微信,微博的大图查看和视频播放 拖拽消失的手势动画。手势单独已抽离出来,可用于任何视图。Simulate Wechat's disappeared gesture animation by dragging when the big picture viewing or video playback . Gestures are separated and can be used in any view
Stars: ✭ 55 (-45%)
Mutual labels:  weibo
Lcactionsheet
一款简约而不失强大的 ActionSheet,微博、微信和 QQ 都采用了极其类似的样式,完全支持 Swift。
Stars: ✭ 809 (+709%)
Mutual labels:  weibo
Weibo Chaohua Daily
微博超话懒人25点经验全收集,包括评论、打榜、签到
Stars: ✭ 19 (-81%)
Mutual labels:  weibo
Xweibo
💊 删除所有微博痕迹
Stars: ✭ 46 (-54%)
Mutual labels:  weibo
Diplomat
整合第三方 SDK 微信、微博、 QQ 等为统一的 Diplomat 接口。
Stars: ✭ 672 (+572%)
Mutual labels:  weibo
Dlweiboprofilecontroller
高仿微博个人主页 Weibo user profile page based on PersonalHomePageDemo
Stars: ✭ 72 (-28%)
Mutual labels:  weibo
Yawf
药方 Yet Another Weibo Filter 用户脚本,微博过滤和版面改造等 userscript, filter weibo and modify layout
Stars: ✭ 562 (+462%)
Mutual labels:  weibo
Weibo Crawler
新浪微博爬虫,用python爬取新浪微博数据,并下载微博图片和微博视频
Stars: ✭ 1,019 (+919%)
Mutual labels:  weibo
Ssm Demo
基于Spring+SpringMVC+Mybatis+Bootstrap的模仿微博系统 🔥🌀🚀
Stars: ✭ 93 (-7%)
Mutual labels:  weibo
Fitness
Flutter 仿微博客户端!A Weibo client application developed with Flutter, which supports both Android and iOS.
Stars: ✭ 75 (-25%)
Mutual labels:  weibo
L Passport
Koa middleware and api sdk for wechat oauth, qq oauth, baidu oauth and weibo oauth
Stars: ✭ 52 (-48%)
Mutual labels:  weibo

微博批量关注 (转移关注列表)

好像并没有什么卵用

起因

使用方法

得到 A 账号关注列表

  1. 前往微博 H5 版首页 (https://m.weibo.cn)
  2. 登录 A 账号
  3. 右键 "检查" 打开开发者工具,复制下面的代码,粘贴到控制台,等待结果并复制
  • 关注数量较多时请耐心等待
  • 由于接口限制可能无法获得完整的关注列表
(() => {
	const follows = []
	const sleep = time => () => new Promise(resolve => setTimeout(resolve, time))
	const query = page =>
		fetch(
			`/api/container/getIndex?containerid=231093_-_selffollowed&page=${page}`, 
			{ headers: { 'X-XSRF-TOKEN': (document.cookie.match(/XSRF-TOKEN=([^;$]+)/) || [])[1] || '' } }
		) 
			.then(response => response.json())
			.then(body => {
				const { data, msg, ok } = body
				if (msg === '这里还没有内容') return Promise.reject(new Error('finish'))
				if (ok !== 1) return Promise.reject(new Error(msg))
				data.cards.forEach(group => group.card_group.forEach(card => card.user && follows.push(card.user.id)))
			})
	const polling = (page = 1) => query(page).then(sleep(1500)).then(() => polling(page + 1))

	polling()
		.catch(error => console.warn(`${error.message === 'finish' ? '获取完成' : `出错了 (${error.message})` }\n\n${JSON.stringify(follows)}`))
})()

按列表为 B 账号添加关注

  1. 前往 PC 版首页 (www.weibo.com)
  2. 退出 A 账号,登录 B 账号
  3. 右键 "检查" 打开开发者工具,复制下面的代码并填入上一步得到的列表,粘贴到控制台,等待全部关注完成

每日关注数量有上限,关注数量较多需要分批(分日)处理

(list => {
	let index = 0
	const { length } = list
	const failed = []
	const deviation = () => Math.round(Math.random() * 100)
	const sleep = time => () => new Promise(resolve => setTimeout(resolve, time))
	const follow = uid =>
		fetch(`/aj/f/followed?ajwvr=6&__rnd=${Date.now()}`, {
			method: 'POST',
			headers: { 'content-type': 'application/x-www-form-urlencoded' },
			body: `uid=${uid}&objectid=&f=1&extra=&refer_sort=&refer_flag=1005050001_&location=page_100505_home&oid=${uid}&wforce=1&nogroup=false&fnick=&refer_lflag=&refer_from=profile_headerv6&template=7&special_focus=1&isrecommend=1&is_special=0&_t=0`
		})
			.then(response => response.json())
			.then(data => {
				if (data.code === '100000')
					console.log(`${index}/${length}`, uid, data.data.fnick, '关注成功')
				else {
					console.log(`${index}/${length}`, uid, '关注失败')
					failed.push(uid)
					if (data.code === '100027') return Promise.reject(new Error('captcha is required'))
				}
			})
	const subscribe = () => index < length ? follow(list[index++]).then(sleep(4000 + deviation())).then(subscribe) : Promise.resolve()

	subscribe()
		.catch(error => console.error(`出错了 (${error.message})${list.slice(index).length ? `\n\n以下 ID 还未处理,请之后再试\n\n${JSON.stringify(list.slice(index))}` : ''}`))
		.then(() => failed.length && console.warn(`以下 ID 关注失败,请重试或手动关注\n\n${JSON.stringify(failed)}`))
})(/*上一步的结果*/)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].