tsu.xxw 发表于 2022-3-16 12:38

搞了个精易论坛自动任务的代码

本帖最后由 tsu.xxw 于 2022-3-17 15:13 编辑

首先感谢论坛里朋友们的帮助,解决掉了我前两天的问题

改了下,解决了部分评分报错的问题
这两天无聊,试了试用python写了个精易论坛每天自动签到,评论,评分的代码

没什么大的用处,就是可以获得精币,嫖一些源码模块,所以勿喷

可以放进云函数,每天自动运行

如果要放在云函数自动执行,需要将以下代码

if __name__ == "__main__":
    cookies='换cookies'
    page_number = random.randint(0, 40)
    test_cookie()

更换成

def main_handler(*args):# 腾讯云函数
    main()

def main():
    cookies = '换cookies'
    page_number = random.randint(0, 40)
    test_cookie()

if __name__ == '__main__':
    main()


效果图


代码如下,换成自己cookies即可

import requests
import random
from lxml import etree
import time
import re

def test_cookie():
    global cookies
    url="https://bbs.125.la/plugin.php?id=dsu_paulsign:sign"
    headers = {
      'cookie':cookies,
      'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62'
    }
    session= requests.session()
    rep=session.get(url=url,headers=headers)
    if rep.status_code == 200:
      print("登录成功")
      checkin()
      comment()
      time.sleep(7)
      score()
      ime.sleep(8)
      print('休息中')
    else:
      print("异常了,快看看")

def comment():
    text="""
      Host: bbs.125.la
      Connection: keep-alive
      Content-Length: 81
      Cache-Control: max-age=0
      sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="99", "Microsoft Edge";v="99"
      sec-ch-ua-mobile: ?0
      sec-ch-ua-platform: "Windows"
      Upgrade-Insecure-Requests: 1
      Origin: https://bbs.125.la
      Content-Type: application/x-www-form-urlencoded
      User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36 Edg/99.0.1150.39
      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
      Sec-Fetch-Site: same-origin
      Sec-Fetch-Mode: navigate
      Sec-Fetch-User: ?1
      Sec-Fetch-Dest: iframe
      Referer: https://bbs.125.la/thread-14721307-1-1.html
      Accept-Encoding: gzip, deflate, br
      Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
      Cookie:换cookies
      """
    dic = get_canshu()
    tid = dic['tid']
    formhash = dic['formhash']
    url='https://bbs.125.la/forum.php?mod=post&action=reply&fid=98&tid='+tid+'&fromvf=1&extra=page=1&replysubmit=yes&infloat=yes&handlekey=vfastpost&inajax=1'
    headers=trans_headers2(text)
    data='formhash='+formhash+'&message=+%E9%A1%B6%EF%BC%8C%E5%AD%A6%E4%B9%A0%E4%B8%80%E4%B8%8B'
    session = requests.session()
    rep = session.post(url=url, headers=headers,data=data)
    print(rep.text)



def trans_headers2(text):         #格式化请求头
    headers = text
    headers = headers.strip().split('\n')
    headers = {x.split(':').strip(): ("".join(x.split(':'))).strip().replace('//', "://") for x in headers}
    return headers

def get_canshu():      #获取formhash , tid , pid,以字典返回
    global page_number
    url='https://bbs.125.la/thread-'+ get_page() +'-1-1.html'
    print(get_page())
    text='''
    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, br
    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
    cookie:换cookies
sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="99", "Microsoft Edge";v="99"
    sec-ch-ua-mobile: ?0
    sec-ch-ua-platform: "Windows"
    sec-fetch-dest: document
    sec-fetch-mode: navigate
    sec-fetch-site: cross-site
    sec-fetch-user: ?1
    upgrade-insecure-requests: 1
    user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36 Edg/99.0.1150.39
    '''
    headers=trans_headers2(text)
    rep=requests.get(url=url,headers=headers).text
    # pattern=re.compile(r'formhash=(.*?)\"')
    formhash_init=re.search(r'formhash=(?P<formhash>.*?)"',rep)
    pid_init = re.search(r'pid(?P<pid>.*?)"', rep)

    cansu={}
    cansu['formhash'] = formhash_init.group("formhash")
    cansu['tid'] = get_page()
    cansu['pid'] = pid_init.group("pid")
    print(cansu)
    return cansu




def score():         #进行每日评分,注意,每日4分
    global cookies
    try:
      headers = {
            'cookie': cookies,
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62'
      }
      session = requests.session()
      dic = get_canshu()
      tid = dic['tid']
      pid = dic['pid']
      formhash = dic['formhash']
      url_page = 'https://bbs.125.la/thread-' + tid + '-1-1.html'
      rep = session.get(url=url_page, headers=headers)
      print(url_page)
      print("获取pid={}与tid={}与formash={}成功,开始自动评分".format(pid, tid, formhash))
      # 开始评分
      url_score = 'https://bbs.125.la/forum.php?mod=misc&action=rate&ratesubmit=yes&infloat=yes&inajax=1'
      data = 'formhash=' + formhash + '&tid=' + tid + '&pid=' + pid + '&referer=https%3A%2F%2Fbbs.125.la%2Fforum.php%3Fmod%3Dviewthread%26tid%3D' + tid + '%26page%3D0%23pid' + pid + '&handlekey=rate&score4=%2B1&reason=%E6%84%9F%E8%B0%A2%E5%88%86%E4%BA%AB%EF%BC%8C%E5%BE%88%E7%BB%99%E5%8A%9B%EF%BC%81%7E'
      headers['Content-Type'] = 'application/x-www-form-urlencoded'
      headers['Referer'] = 'https://bbs.125.la/thread-'+tid+'-1-1.html'
      rep_score = session.post(url=url_score, data=data, headers=headers)
      print(rep_score.text)
    except:
      print('不存在帖子')

#获取易语言源码模块的第二页帖子
def get_page():
    text='''
    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, br
    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
    cookie: 换cookies
referer: https://bbs.125.la/
    sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="99", "Microsoft Edge";v="99"
    sec-ch-ua-mobile: ?0
    sec-ch-ua-platform: "Windows"
    sec-fetch-dest: document
    sec-fetch-mode: navigate
    sec-fetch-site: same-origin
    sec-fetch-user: ?1
    upgrade-insecure-requests: 1
    user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36 Edg/99.0.1150.39
    '''
    headers=trans_headers2(text)
    url='https://bbs.125.la/forum-98-2.html'
    session = requests.session()
    rep=session.get(url=url,headers=headers)
    tree=etree.HTML(rep.text)
    tbody_list=tree.xpath('/html/body/div/div/div/div/div/div/form/table/tbody')
    id_list=[]
    for tbody in tbody_list:
      id_list.append(tbody.xpath('@id'))
    del id_list
    id=[]
    for i in range(len(id_list)):
      id.append(id_list)
    for i in range(len(id)):
      id=id.split('_')
    return id





def checkin():    #签到
    global cookies
    url="https://bbs.125.la/plugin.php?id=dsu_paulsign:sign&operation=qiandao&infloat=1"
    data={
      "formhash": "8b9834f2",
      "submit": "1",
      "targerurl":"",
      "todaysay":"",
      "qdxq": "kx"
    }
    headers = {
      'cookie': cookies,
      'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62'
    }
    session=requests.session()
    rep=session.post(url=url,headers=headers,data=data)
    jso=rep.json()
    print(jso)




if __name__ == "__main__":
    cookies='换cookies'
for i in range(15):
    page_number = random.randint(0, 40)
      print(page_number)
      test_cookie()

#腾讯云函数用这个
# def main_handler(*args):# 腾讯云函数
#   main()
#
# def main():
#   cookies = '换cookies'
#   page_number = random.randint(0, 40)
#   test_cookie()
#
# if __name__ == '__main__':
#   main()





Prozacs 发表于 2022-3-17 15:53

Cloudflare 5秒盾、用cloudscraper请求。
session = requests.session()
session = cloudscraper.create_scraper(session)
content = session.get('').text

tsu.xxw 发表于 2022-3-16 15:29

cxb2468 发表于 2022-3-16 14:04
感谢楼主这是啥情况?

不清楚,是直接复制的代码吗

13729181580 发表于 2022-3-16 12:39

感谢分享

Ls30 发表于 2022-3-16 12:52

感谢分享,明天再去试试

wenz 发表于 2022-3-16 12:59

谢谢老哥分享

wfys66 发表于 2022-3-16 13:06


感谢分享{:301_997:}{:301_1002:}

icode_isky 发表于 2022-3-16 13:09

感谢分享!

o824 发表于 2022-3-16 13:15

感谢分享

xcy1253 发表于 2022-3-16 13:29

可惜不会用

gentry2008 发表于 2022-3-16 13:40

谢谢分享,向楼主致敬

MinChaoRouji 发表于 2022-3-16 13:46

感谢分享 谢谢
页: [1] 2 3
查看完整版本: 搞了个精易论坛自动任务的代码