【原创 脚本】易班自动发布投票 ,自动点赞、 投票、 评论脚本
[huayang]

github:https://github.com/light-Life/Selenium-yiban

自动 发布投票

# !/usr/bin/python
# -*- coding:utf-8 -*-
# name: Qsj377
# time: 2020.11.9
import requests,base64,random,time,threading
def renzheng(cookie):
    renzheng_r = requests.get(url='http://www.yiban.cn/user/info/index?type=2',headers={
        'Connection': 'keep-alive',
        'Cache-Control': 'max-age=0',
        'DNT': '1',
        'Upgrade-Insecure-Requests': '1',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36 Edg/85.0.564.51',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
        'Accept-Encoding': 'gzip, deflate',
        'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6,ru;q=0.5,zh-TW;q=0.4,da;q=0.3,ht;q=0.2,tr;q=0.1',
        'Cookie': cookie
    })
def yiban_check_ma(cookie):#请求验证码
    yiban_check_ma_headers = {"Accept": "application/json, text/javascript, */*; q=0.01", "Accept-Encoding": "gzip, deflate, br","Accept-Language": "zh-CN,zh;q=0.9", "Connection": "close","Content-Type": "application/x-www-form-urlencoded; charset=UTF-8","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ""(KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36",'Cookie': cookie}
    yiban_check_ma_url = "https://www.yiban.cn/captcha/index?Tue%20Dec%2004%202018%2000:01:26%20GMT+0800%20(%E4%B8%AD%E5%9B%BD%E6%A0%87%E5%87%86%E6%97%B6%E9%97%B4)"
    try:
        yiban_check_ma_r = requests.get(yiban_check_ma_url,headers=yiban_check_ma_headers,timeout=3)
    except Exception:
        yiban_check_ma_r = requests.get(yiban_check_ma_url, headers=yiban_check_ma_headers, timeout=None)
    image_data = base64.b64encode(yiban_check_ma_r.content).decode().replace("\r", "")
    baidu_api(image_data,cookie)
def baidu_api(image_data,cookie):#需要传入字符串:image_data
    baidu_api_headers = {'Content-Type':'application/x-www-form-urlencoded'}#必选参数
    baidu_api_data = {'image':image_data.encode("utf8")} #base64编码的图片,已去头
    try:
        baidu_api_r = requests.post(url='https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=24.f3f0f5de06299de7a2a22a4c29dbc0b9.2592000.1608696091.282335-22957927',headers=baidu_api_headers, data=baidu_api_data,timeout=3)
    except Exception:
        baidu_api_r = requests.post(url='https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=24.f3f0f5de06299de7a2a22a4c29dbc0b9.2592000.1608696091.282335-22957927',headers=baidu_api_headers, data=baidu_api_data, timeout=None)
    if('words_result' in baidu_api_r.json() and len(baidu_api_r.json()['words_result'])>=1):
        yzm = baidu_api_r.json()['words_result'][0]['words']
        toupiao(cookie,yzm)
    else:
        yiban_check_ma(cookie)
def toupiao(cookie,yzm):
    shiju = ['一寸光阴一寸金,寸金难买寸光阴。', '明日复明日,明日何其多,我生待明日,万事成蹉跎。', '天行健,君子以自强不息。', '少壮不努力,老大徒悲伤。', '三更灯火五更鸡,正是男儿读书时。','黑发不知勤学早,白首方悔读书迟。', '宝剑锋从磨砺出,梅花香自苦寒来。']
    x = shiju[random.randint(0, 6)]
    toupiao_headers = {
        'Accept': 'application/json, text/javascript, */*; q=0.01',
        'Accept-Encoding': 'gzip, deflate',
        'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6,ru;q=0.5,zh-TW;q=0.4,da;q=0.3,ht;q=0.2,tr;q=0.1',
        'Connection': 'keep-alive',
        'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
        'Cookie': cookie,
        'DNT': '1',
        'Host': 'www.yiban.cn',
        'Origin': 'http://www.yiban.cn',
        'Referer': 'http://www.yiban.cn/my/publishvote',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36 Edg/85.0.564.51',
        'X-Requested-With': 'XMLHttpRequest'
    }
    toupiao_data = {'puid': '12792328', 'scope_ids': '1000680', 'title': x, 'subjectTxt': '','subjectPic': '', 'options_num': '2', 'scopeMin': '1', 'scopeMax': '1', 'minimum': '1','voteValue': '2021-06-17 21:55', 'voteKey': '2', 'public_type': '0', 'isAnonymous': '1','voteIsCaptcha': '0', 'istop': '1', 'sysnotice': '2', 'isshare': '1', 'rsa': '1','dom': '.js-submit', 'group_id': '1000680', 'subjectTxt_1': shiju[random.randint(0, 6)],'subjectTxt_2': shiju[random.randint(0, 6)], 'captcha': yzm}
    #改三个参数puid#忘了、scope_ids#忘了、group_id#学院id
    try:
        toupiao_r = requests.post(url='https://www.yiban.cn/vote/vote/add', headers=toupiao_headers, data=toupiao_data,timeout=3)
    except Exception:
        toupiao_r = requests.post(url='https://www.yiban.cn/vote/vote/add', headers=toupiao_headers,data=toupiao_data, timeout=None)
    print(toupiao_r.json())
    if('444' in toupiao_r.text):
        renzheng(cookie)
        toupiao(cookie,yzm)
    elif ('200' in toupiao_r.text):
        print(toupiao_r.json()['message'],x)
    else:
        yiban_check_ma(cookie)
#print(requests.get('https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=***_secret=***').json()['access_token'])
cookie = '***'+str(int(round(time.time(),3)*1000))#在这里填写cookie
for i in range(0,10000):
    yiban_check_ma(cookie)

配置

因为涉及到图片识别这里调用的是百度的api

所以要先去百度智能云注册一个账号https://cloud.baidu.com/?from=console

完成后

然后创建应用

最后参照百度api调用守则https://cloud.baidu.com/doc/OCR/s/Ck3h7y2ia

自动点赞 投票 评论

# !/usr/bin/python
# -*- coding:utf-8 -*-
# name: huayang
# time: 2020.11.11
import re
import time
import requests
import threading
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
url = '***'#总投票界面
def First(x,y,cookie,cookie2,name):
    browser = webdriver.Chrome()
    for x in range(int(x),int(y)):#页
        urls = url + str(x)
        headers = {
            'Connection': 'close', 'Accept': 'application/json, text/javascript, */*; q=0.01', 'DNT': '1',
            'X-Requested-With': 'XMLHttpRequest',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36 Edg/85.0.564.51',
            'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'Origin': 'https://www.yiban.cn',
            'Sec-Fetch-Site': 'same-origin', 'Sec-Fetch-Mode': 'cors', 'Sec-Fetch-Dest': 'empty',
            'Referer': 'https://www.yiban.cn/my/publishvote', 'Accept-Encoding': 'gzip, deflate',
            'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6,ru;q=0.5,zh-TW;q=0.4,da;q=0.3,ht;q=0.2,tr;q=0.1',
            'Cookie': cookie
        }
        try:
            response = requests.get(urls,headers=headers)
        except Exception:
            response = requests.get(urls, headers=headers)
        span = re.findall('.*?<span class="tx">(.*?)</sp.*?',response.text,re.S)
        href = re.findall('.*?target="_blank" href="(.*?)"',str(span))
        for i in href:
            i = 'https://www.yiban.cn' + i
            browser.get(i)
            browser.add_cookie({'name': 'yiban_user_token', 'value': cookie2})
            time.sleep(0.5)
            browser.refresh()
            time.sleep(0.5)
            source = browser.page_source
            if '取消赞' in source:
                print('已点赞')
            else:
                location = browser.find_element_by_id('btn_like')#必须使用id才能定位鼠标悬停
                ActionChains(browser).move_to_element(location).perform()#鼠标悬停
                time.sleep(0.1)
                browser.find_element_by_id('btn_like').click()  # 点赞
                time.sleep(0.5)
            if 'id="vote_result" style=' in source:
                print('已投票')
            else:
                browser.find_element_by_class_name('btn_chs').click()  # 选择
                time.sleep(0.4)
                browser.find_element_by_class_name('btn_vote').click()  # 投票按钮
            if name in source:
                print('已评论')
            else:
                speech = browser.find_element_by_xpath('//input[@type="text"]')
                speech.send_keys('大家好,我是马保国')#评论
                time.sleep(0.3)
                try:
                    browser.find_element_by_class_name('submit').click()  # 发送评论
                except:
                    browser.find_element_by_class_name('submit').click()  # 发送评论
                time.sleep(0.5)
    print('循环结束')
cookie = [
    'name','cookie!',
    '**','***!',
    '**','***!',
    '**','***!',
    '**','***!',
    '**','***!'
]#第一个是真实姓名,二是此cookie值
if __name__ == '__main__':
    threads = []    #创建线程数组
    number = 1 #cookie
    number2 = 0#cookie2
    number3 = 0#name
    for i in range(6):#设置线程数,cookie要记得随之更改
        cookie2 = re.findall('.*?yiban_user_token=(.*?)!.*?', str(cookie), re.S)#cookie最后加上!在不影响cookie的同时能使正则匹配成功
        threads.append(threading.Thread(target=First, args=(111,120,cookie[number],cookie2[number2],cookie[number3])))#页数改前两位
        number +=2
        number2 +=1
        number3 +=2
    for t in threads:
            t.start()   #启动线程
    for t in threads:
            t.join()    #守护线程
'''
本代码优势:
1.可以刷共建指数
2.完全模拟真人点击防封率大大提升
3.采用多线程刷分效率大大提高
4.代码简洁有注释
'''

第三方以及插件配置

因为我的是mac这里就以mac进行讲解

安装第三方库requestsselenium

pip3 install requests -i https://mirrors.aliyun.com/pypi/simple/
pip3 install selenium -i https://mirrors.aliyun.com/pypi/simple/

进pycharm进行确认

win同样

首先你得有chrome

然后去下载chromedriver

https://npm.taobao.org/mirrors/chromedriver

这里有很多版本目前最新的chrome下载这个即可

mac

上点开访达然后command+shift+g

搜索/usr/local/bin 把下载好的文件拖进去就行了

然后运行这段代码看是否能正常调用

from selenium import webdriver
browser = webdriver.Chrome()

如果正常调用并且没有报错则可以开搞

如果能调用但是出现秒退的情况则可能是chromedriver版本问题

win配置:https://blog.csdn.net/hijacklei/article/details/107876474

url为投票界面

设置完成后就可以冲冲了

问题

运行久后会出现如下错误实属正常,基本是网络原因

再次运行即可

运行久后可能会封ip或者服务器抽风

等一会儿就行了

都玩这个相信都有一定基础的了,别的问题应该都能自行解决

注:此为老版本的演示视频,新版本的懒得搞

大体差不多,增加了多线程和错误

演示视频

这里那个是刷新而不是跳了一个

看代码逻辑

警告:此代码可招致封ip,5~15分钟即可解封

写在最后

代码不算难但也修修改改了n次,也凝聚了长达半个月的心血

本代码不接受任何提问,但可以提出不同的思路

祝玩得愉快,也可以拿去赚点小钱

说起来我们也赚了差不多三四十了哈哈

2021.3.12更

点赞投票

import requests
from lxml import etree
import time
import threading
def First(cookie):
    for i in range(2208, 3456):
        url = 'http://www.yiban.cn/Newgroup/showMorePub/group_id/***/puid/***/type/3/page/' + str(i)
        headers = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9','Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6','Cache-Control': 'max-age=0', 'Connection': 'close', 'Cookie': cookie, 'DNT': '1', 'Host': 'www.yiban.cn','Upgrade-Insecure-Requests': '1','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36 Edg/88.0.705.81'}
        r = requests.get(url=url, headers=headers)
        link = etree.HTML(r.content).xpath('/html/body/main/div/div/div/div[1]/section[2]/ul//li/div/div[1]/span[1]/a/@href')
        for j in range(0, len(link)):
            link[j] = 'https://www.yiban.cn' + link[j]
            # 点赞
            vote_id = link[j][50:59]
            DianZan_datas = {'puid': '12792328', 'group_id': '1000680', 'vote_id': vote_id, 'actor_id': '32628138','flag': '1'}
            DianZan_r = requests.post(url='https://www.yiban.cn/vote/vote/editLove', headers=headers,data=DianZan_datas)
            # 点赞调试代码
            if DianZan_r.json()['message'] == '操作成功':
                pass
            # print('点赞成功')
            else:
                pass
            # print(DianZan_r.json())
            time.sleep(0.1)
            # 投票
            TouTiao_data = {'puid': '***', 'group_id': '***', 'vote_id': vote_id, 'actor_id': '32628138','voptions_id': '441568499', 'minimum': '1', 'scopeMax': '1'}
            TouTiao_r = requests.post(url='https://www.yiban.cn/vote/vote/act', headers=headers, data=TouTiao_data)
            # 投票调试代码
            if TouTiao_r.json()['message'] == '操作成功':
                pass
            # print('投票成功')
            else:
                pass
            # print(TouTiao_r.json())
            time.sleep(0.2)
        print(i, '页', etree.HTML(requests.get(url=url, headers=headers).content).xpath('/html/body/main/div/div/div/div[1]/section[1]/div[2]/div/span[1]/text()'))
cookie = (
    '***'
)
threads = []
for i in cookie:
    threads.append(threading.Thread(target=First, args=(i, )))
for t in threads:
    t.start()
    time.sleep(0.2)
for t in threads:
    t.join()

发票点赞投票

import base64
import random
import requests
import threading
import time
def yiban_check_ma(cookie):#请求验证码
    yiban_check_ma_headers = {"Accept": "application/json, text/javascript, */*; q=0.01", "Accept-Encoding": "gzip, deflate, br","Accept-Language": "zh-CN,zh;q=0.9", "Connection": "close","Content-Type": "application/x-www-form-urlencoded; charset=UTF-8","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ""(KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36",'Cookie': cookie}
    yiban_check_ma_url = "https://www.yiban.cn/captcha/index?Mon Dec 14 2020 18:45:34 GMT 0800 (中国标准时间)="
    try:
        yiban_check_ma_r = requests.get(yiban_check_ma_url,headers=yiban_check_ma_headers,timeout=None)
    except Exception:
        yiban_check_ma_r = requests.get(yiban_check_ma_url, headers=yiban_check_ma_headers,timeout=None)
    image_data = base64.b64encode(yiban_check_ma_r.content).decode().replace("\r", "")
    baidu_api_headers = {'Content-Type':'application/x-www-form-urlencoded'}#必选参数
    baidu_api_data = {'image':image_data.encode("utf8")} #base64编码的图片,已去头
    try:
        baidu_api_r = requests.post(url='https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=24.cae65f3935c6094515f0fa9b948e28c4.2592000.1617352274.282335-22957927',headers=baidu_api_headers, data=baidu_api_data,timeout=None)
    except Exception:
        baidu_api_r = requests.post(url='https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=24.cae65f3935c6094515f0fa9b948e28c4.2592000.1617352274.282335-22957927',headers=baidu_api_headers, data=baidu_api_data,timeout=None)
    if 'words_result' in baidu_api_r.json() and len(baidu_api_r.json()['words_result']) >= 1 and len(baidu_api_r.json()['words_result'][0]['words']) == 1:
        yzm = baidu_api_r.json()['words_result'][0]['words']
        toupiao(cookie,yzm)
    else:
        yiban_check_ma(cookie)
def toupiao(cookie,yzm):
    shiju = ['一寸光阴一寸金,寸金难买寸光阴。', '明日复明日,明日何其多,我生待明日,万事成蹉跎。', '天行健,君子以自强不息。', '少壮不努力,老大徒悲伤。', '三更灯火五更鸡,正是男儿读书时。','黑发不知勤学早,白首方悔读书迟。', '宝剑锋从磨砺出,梅花香自苦寒来。']
    x = shiju[random.randint(0, 6)]
    toupiao_headers = {'Accept': 'application/json, text/javascript, */*; q=0.01','Accept-Encoding': 'gzip, deflate','Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6,ru;q=0.5,zh-TW;q=0.4,da;q=0.3,ht;q=0.2,tr;q=0.1','Connection': 'keep-alive','Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8','Cookie': cookie,'DNT': '1','Host': 'www.yiban.cn','Origin': 'http://www.yiban.cn','Referer': 'http://www.yiban.cn/my/publishvote','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36 Edg/85.0.564.51','X-Requested-With': 'XMLHttpRequest'}
    toupiao_data = {'puid': '***', 'scope_ids': '***', 'title': x, 'subjectTxt': '','subjectPic': '', 'options_num': '2', 'scopeMin': '1', 'scopeMax': '1', 'minimum': '1','voteValue': '2023-09-31 23:59', 'voteKey': '2', 'public_type': '0', 'isAnonymous': '1','voteIsCaptcha': '0', 'istop': '1', 'sysnotice': '2', 'isshare': '1', 'rsa': '1','dom': '.js-submit', 'group_id': '1000680', 'subjectTxt_1': shiju[random.randint(0, 6)],'subjectTxt_2': shiju[random.randint(0, 6)], 'captcha': yzm}
    #改三个参数puid、scope_ids、group_id#学院id
    toupiao_r = requests.post(url='https://www.yiban.cn/vote/vote/add', headers=toupiao_headers, data=toupiao_data,timeout=None)
    if '200' in toupiao_r.text:
        print(toupiao_r.status_code,toupiao_r.json()['message'])
        #点赞
        print('投票ID:',toupiao_r.json()['data']['lastInsetId'])
        vote_id = toupiao_r.json()['data']['lastInsetId']
        DianZan_datas = {
            'puid': '***',
            'group_id': '***',
            'vote_id': vote_id,
            'actor_id': '***',
            'flag': '1'
        }
        DianZan_r = requests.post(url='https://www.yiban.cn/vote/vote/editLove',headers=toupiao_headers,data=DianZan_datas)
        # 点赞调试代码
        if DianZan_r.json()['message'] == '操作成功':
            print('点赞成功')
        else:
            print(DianZan_r.json())
        #投票
        TouTiao_data = {
            'puid':'***',
            'group_id':'***',
            'vote_id':vote_id,
            'actor_id':'***',
            'voptions_id':'***',
            'minimum':'1',
            'scopeMax':'1'
        }
        TouTiao_r = requests.post(url='https://www.yiban.cn/vote/vote/act',headers=toupiao_headers,data=TouTiao_data)
        #投票调试代码
        if TouTiao_r.json()['message']=='操作成功':
            print('投票成功')
        else:
            print(TouTiao_r.json())
    else:
        print(toupiao_r.status_code,toupiao_r.json())
        yiban_check_ma(cookie)
cookie = '***'
for i in range(0,100):
    yiban_check_ma(cookie)
    time.sleep(60)

[/huayang]

==>转载请注明来源哦<==

评论

  1. d
    Windows Firefox
    1月前
    2021-10-25 11:10:59

    nice try

  2. huayang 博主
    Macintosh Chrome
    1月前
    2021-10-24 16:29:49

    现在还能用吗

  3. worker
    Windows Chrome
    1月前
    2021-10-23 9:48:25

    有点慢哈

  4. dfdf
    Windows Chrome
    1月前
    2021-10-23 2:39:25

    ff

  5. 啊哈
    Windows Edge
    1月前
    2021-10-22 10:10:12

    让我康康

  6. Loser
    Windows Edge
    2月前
    2021-10-18 15:14:23

    让我看看

  7. cola
    Windows Chrome
    2月前
    2021-10-17 21:56:55

    666

  8. 1
    Windows Edge
    2月前
    2021-10-17 13:32:56

    让我康康5

  9. zm
    Windows Chrome
    2月前
    2021-10-11 18:47:53

    666

  10. Windows Edge
    2月前
    2021-10-08 21:08:42

    我要看看

  11. murphy
    Macintosh Safari
    2月前
    2021-10-03 22:46:28

    我要看!作者nb!

  12. Action
    Windows Chrome
    2月前
    2021-9-26 18:53:51

    太强太强了

  13. MCqie
    Windows Edge
    2月前
    2021-9-23 20:26:14

    6

  14. spacker
    Windows Chrome
    2月前
    2021-9-20 15:53:50

    呜呜,研究了一会儿发现易班改版就不能用啦。

  15. spacker
    Windows Chrome
    3月前
    2021-9-20 13:16:13

    ==让我康康==超大声

  16. ok
    Windows Edge
    3月前
    2021-9-17 10:49:28

    66666

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇