news 2026/5/3 19:45:12

微博协议算法

作者头像

张小明

前端开发工程师

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/1 16:54:39

外贸推广平台推荐,亲测有效!

谷歌SEO优化行业分析:通科云外贸的卓越之道行业痛点分析在谷歌SEO优化领域,当前存在诸多技术挑战。随着互联网的发展,搜索引擎算法不断更新,网站要在海量信息中脱颖而出愈发困难。数据表明,众多外贸企业网站在谷歌搜索…

作者头像 李华
网站建设 2026/5/2 5:03:00

1、探索 Apache Cordova:构建混合移动应用的全面指南

探索 Apache Cordova:构建混合移动应用的全面指南 1. 引言 在当今数字化时代,移动应用开发的需求日益增长。对于许多开发者来说,如何高效地构建跨平台的移动应用是一个关键问题。Apache Cordova 作为一个强大的框架,为开发者提供了一种使用 Web 技术(HTML、CSS 和 JavaS…

作者头像 李华
网站建设 2026/5/1 1:41:57

2、Apache Cordova:混合移动应用开发的利器

Apache Cordova:混合移动应用开发的利器 1. 移动开发与Cordova的登场 移动开发是开发者必备的重要技能之一。过去十年,从智能手机到平板电脑,移动设备呈爆炸式增长,应用生态系统也随之蓬勃发展,涵盖了从娱乐到改变生活的各种应用。然而,学习移动平台开发并非一蹴而就。…

作者头像 李华
网站建设 2026/5/2 8:41:39

7、移动应用开发:从插件使用到界面设计优化

移动应用开发:从插件使用到界面设计优化 在移动应用开发领域,我们常常会面临各种挑战,比如如何利用设备的原生特性,以及如何设计出用户体验良好的界面。下面我们将深入探讨这些方面的内容。 插件助力Cordova应用 在Cordova应用开发中,插件是赋予应用强大功能的关键。以…

作者头像 李华
网站建设 2026/5/2 7:59:43

11、移动应用远程调试工具全解析

移动应用远程调试工具全解析 在移动应用开发中,调试是确保应用质量和性能的关键环节。以下将详细介绍几种常见的远程调试工具,包括 Chrome 远程调试、Safari 远程调试以及 Weinre 工具,帮助开发者更高效地定位和解决应用中的问题。 1. Chrome 远程调试在 Android 上的应用…

作者头像 李华
网站建设 2026/5/3 16:34:48

无源蜂鸣器可靠性测试:针对家电提示音功能的系统学习

无源蜂鸣器可靠性测试:家电提示音背后的“小器件大挑战”你有没有遇到过这样的情况?洗衣机洗完衣服,提示音却轻得像蚊子哼哼;冰箱报警时响两声就哑火;电饭煲按下按键后迟迟没有反馈——这些看似微不足道的体验瑕疵&…

作者头像 李华