news 2026/4/23 20:25:02

微博协议算法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
微博协议算法

最近一直在研究这个,希望能用微博引流,话不多说

# /usr/bin/env python

# -*- coding:utf-8 -*-

import threading

from urllib import request, parse

from bs4 import BeautifulSoup

import http.cookiejar

import json

import random

import time

import configparser

import re

import math

import os

import traceback

import requests

from requests_toolbelt import MultipartEncoderMonitor

from MySqlInter import MySqlInter

'''

构建公共请求头

'''

# 登录

def login(code=0):

login_url = 'https://passport.weibo.cn/sso/login'

# 构造登录参数

params = {

'username': username,

'password': password,

'savestate': '1',

'r': '',

'ec': '0',

'pagerefer': '',

'entry': 'mweibo',

'wentry': '',

'loginfrom': '',

'client_id': '',

'code': '',

'qq': '',

'mainpageflag': '1',

'hff': '',

'hfp': ''

}

params = parse.urlencode(params).encode('utf-8')

req = request.Request(login_url, params, method="POST")

res = request.urlopen(req)

result = res.read().decode('utf-8')

login_result = json.loads(result)

if login_result['msg'] == '':

print('登陆成功')

return True

else:

print(login_result['msg'])

return False

# 上传文件

def upload_pic(str, path):

try:

name = path.split('/')[-1]

m = MultipartEncoderMonitor.from_fields(

fields={'type': 'json',

'pic': (name, open(path, 'rb'), "application/octet-stream"),

'st': str

},

)

# 'cookie': "XSRF-TOKEN=1093d3;MLOGIN=1;SCF=AiDo0hUv7kdmNPD80v_FXfJF-G23i1xPrSs0dgYxnL8lg9pa22w6Ujb59CVuCAiuQNiFzikHGNhBng4vHGpu7MU.;SSOLoginState=1578974457;SUB=_2A25zGUypDeRhGeFN7VsV9CzOzz-IHXVQ4lThrDV6PUJbkdANLXj5kW1NQ_2LYBpJCyz6DjFtfia1vTqvwsOUmrO-;SUHB=08Jrg82rI3lBH9;WEIBOCN_FROM=1110003030;_T_WM=56807055301;login=9de37c72b9f15cd57c8d7fdf3f6fb3c9",

headers = {

'referer': 'https://m.weibo.cn/compose/?pids=',

'Content-Type': m.content_type,

'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'

}

r = requests.post('https://m.weibo.cn/api/statuses/uploadPic', data=m, headers=headers, cookies=cookie).json()

print(r)

pic_id = r['pic_id']

return pic_id

except:

traceback.print_exc()

# 发微博

def post_weibo(str, content, picIds):

add_weibo_url = 'https://m.weibo.cn/api/statuses/update'

# 构造登录参数

params = {

'content': content,

'st': str,

'picId': picIds

}

params = parse.urlencode(params).encode('utf-8')

req = request.Request(add_weibo_url, params, method="POST")

res = request.urlopen(req)

html = res.read().decode('utf-8')

print(html)

def down_pic(url):

path = "img/"

split = url.split("/")

file_name = path + split[len(split) - 1]

try:

# print("缓存图片中-> " + url + "\n" + "保存至-> " + path)

r = requests.get(url)

file_size = r.headers["Content-Length"]

with open(file_name, 'wb') as f:

f.write(r.content)

f.close()

except:

traceback.print_exc()

return file_name

def auto_post():

try:

sql = MySqlInter(db_config)

build_opener()

is_login = login()

if is_login:

str = get_st()

row = sql.get_available_weibo(3051943081)

print(row)

id = row[0]

content = row[4]

pics = row[7]

pic_ids = ""

if pics != "":

pic_list = pics.split(",")

for pic in pic_list:

file_name = down_pic(pic)

pic_id = upload_pic(str, file_name)

pic_ids += pic_id + ","

post_weibo(str, content, pic_ids[0: len(pic_ids) - 1])

sql.update_weibo_state(int(id))

except:

print("此处发图任务失败!")

timer = threading.Timer(7200, auto_post)

timer.start()

if __name__ == '__main__':

auto_post()

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 12:27:04

DBAN终极指南:免费数据擦除工具的完整使用教程

在数字时代,保护隐私数据变得尤为重要。当您需要处理旧电脑或淘汰设备时,如何确保硬盘中的敏感信息被彻底删除?DBAN(Dariks Boot and Nuke)作为一款专业的免费数据擦除工具,提供了完美的解决方案。这款开源…

作者头像 李华
网站建设 2026/4/23 13:09:26

亲测有效的国内正规外贸独立站指南

谷歌SEO优化行业分析:通科云外贸的卓越之道行业痛点分析在谷歌SEO优化领域,当前存在诸多技术挑战。数据表明,众多外贸企业在谷歌搜索结果中的排名不尽人意,大量潜在客户难以触及。据统计,约70%的外贸企业网站在谷歌首页…

作者头像 李华
网站建设 2026/4/23 13:16:41

3、科尔多瓦(Cordova)与安卓软件开发工具包(Android SDK)安装指南

科尔多瓦(Cordova)与安卓软件开发工具包(Android SDK)安装指南 1. 移动软件开发工具包(SDK)概述 移动软件开发工具包(SDK)是原生开发者用于在所选平台上进行开发的工具。苹果、谷歌、微软等设备制造商都会提供相应的 SDK,以便开发者为其平台创建应用程序。有些 SDK …

作者头像 李华
网站建设 2026/4/23 12:01:44

全域空间态势底座:数据驱动与技术创新结合

概述 在数字时代背景下,传统的信息系统架构难以满足现代治理、综合应急和智能指挥对全域态势感知、动态决策支持与跨域协同能力的综合要求。因此,构建一个涵盖数据采集、融合计算、智能分析与可视化交互的全域空间态势底座,成为实现智能化治…

作者头像 李华
网站建设 2026/4/23 12:01:36

Galacean Effects:现代Web动画特效的全新解决方案

Galacean Effects:现代Web动画特效的全新解决方案 【免费下载链接】effects-runtime It can load and render cool animation effects 项目地址: https://gitcode.com/gh_mirrors/ef/effects-runtime 在当今数字化时代,动画特效已成为提升用户体验…

作者头像 李华
网站建设 2026/4/23 12:01:36

19、使用 Ionic 构建 RSS 阅读器应用

使用 Ionic 构建 RSS 阅读器应用 1. Ionic 框架简介 Ionic 是一个用于构建混合移动应用程序的强大框架。它使用起来很方便,而且在构建应用方面具有很多优势。Ionic 结合了 AngularJS 框架,AngularJS 是目前最流行的 JavaScript 框架之一,不过对于新手来说可能会有一定复杂度…

作者头像 李华