news 2026/5/23 16:05:43

微博协议算法

作者头像

张小明

前端开发工程师

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/5/16 22:57:10

5分钟快速上手:JSON编辑器的完整使用指南

5分钟快速上手:JSON编辑器的完整使用指南 【免费下载链接】jsoneditor A web-based tool to view, edit, format, and validate JSON 项目地址: https://gitcode.com/gh_mirrors/js/jsoneditor 还在为复杂的JSON数据结构感到困惑吗?面对层层嵌套的…

作者头像 李华
网站建设 2026/5/11 1:39:48

anything-llm镜像+GPU算力加速:让大模型推理更高效

anything-llm镜像GPU算力加速:让大模型推理更高效 在企业知识管理日益智能化的今天,一个常见的挑战摆在面前:如何让员工快速从成千上万页的合同、手册和报告中提取关键信息?传统的搜索方式依赖关键词匹配,往往遗漏语义…

作者头像 李华
网站建设 2026/5/10 8:42:15

实战指南:5步精通ABAP Excel生成神器abap2xlsx

实战指南:5步精通ABAP Excel生成神器abap2xlsx 【免费下载链接】abap2xlsx Generate your professional Excel spreadsheet from ABAP 项目地址: https://gitcode.com/gh_mirrors/ab/abap2xlsx 还在为SAP报表导出Excel而烦恼吗?传统方法操作复杂、…

作者头像 李华
网站建设 2026/5/3 4:17:58

anything-llm镜像的安全性分析:数据隐私保护如何实现

anything-llm镜像的安全性分析:数据隐私保护如何实现 在企业日益依赖人工智能处理敏感信息的今天,一个核心问题始终悬而未决:我们能否既享受大语言模型(LLM)带来的智能便利,又不把数据安全拱手让给第三方&a…

作者头像 李华
网站建设 2026/5/16 21:30:43

工业控制PCB布线规则设计与热管理协同分析

工业控制PCB设计:当布线遇上散热,如何打造“会呼吸”的电路板? 你有没有遇到过这样的情况——一块工业PLC主板,在实验室测试时表现完美,可一放进现场控制柜运行几个月,就开始频繁重启?查来查去&…

作者头像 李华
网站建设 2026/5/15 8:38:52

Vivado安装新手教程:零基础入门必看指南

Vivado安装实战指南:从零开始搭建FPGA开发环境 你是不是刚接触FPGA,面对Xilinx官网密密麻麻的下载选项一头雾水? 有没有试过花几个小时安装Vivado,结果启动时报错“Part not found”或“Tcl interpreter failed”? 别…

作者头像 李华