吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2377|回复: 113
上一主题 下一主题
收起左侧

[Web逆向] Python实现百度贴吧自动签到

  [复制链接]
跳转到指定楼层
楼主
Eureka8 发表于 2022-8-3 21:14 回帖奖励
本帖最后由 Eureka8 于 2022-8-6 12:57 编辑

背景

嘿嘿嘿,刷百度贴吧太爽了,但是等级太低在贴吧中发言貌似显得比较萌新,然而除了水贴之外升级最重要一个途径便是签到,关注了很多吧,每天一个一个点签到太麻烦了,怎么才能更方便快速地一次把关注的吧全签到了呢?

有了!

百度贴吧签到是POST请求,不如使用Python中的request模块,通过编写一键签到脚本来实现这个需求吧!

指定计划!

  1. 在"关注的吧”页面中,使用BeautifulSoup模块解析页面,得到所有已经关注的贴吧
  2. 通过抓包得到“签到”的请求地址,顺便获取请求头相关信息(User-Agent和Cookies)
  3. 编写Python代码,大功告成!

开始行动!

1.分析得到贴吧“签到”的请求地址

直接到任意一个已经关注的贴吧的主页,打开F12,我使用的是谷歌的调试工具,打开“网络(Network)”标签,开始抓包!

点击“签到”按钮,得到POST请求地址和参数


有三个参数,“ie”指的就是编码,默认即可,“tw”经过测试发现指的就是贴吧名字,需要添加变量,而这个“tbs”是什么呢?经过测试发现每次都在变,所以先在页面Ctrl+U得到HTML代码,搜索试试!

喔,果然搜到了,看来还需要使用一些操作得到这串字符啊!
没关系,交给正则表达式来解决!

大功告成,模拟签到部分的代码我们就已经编辑好了,只需要知道贴吧名字即可,我们把他封装成函数,变量为贴吧名字,代码如下:

2.得到账号下关注的吧,遍历,签到

感谢@百度贴吧官方,为我们提供了 “https://tieba.baidu.com/f/like/mylike” 从而让我们方便地就能看到账户下已经关注的贴吧

F12稍微分析,好家伙,太方便了,直接就是一个列表,一堆\<tr>:

此时我们的函数就写出来了(得到关注的吧的名字),我们选择直接遍历,得到名字之后直接签到,这样省时又省力啊!

大功告成,签到成功!舒服了~

全部代码如下:

import requests
from bs4 import BeautifulSoup
import re

myHeader = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36",
}
myCookies = {
    "Cookie": "###"
}
url = "https://tieba.baidu.com/sign/add"

def getTblikes():
    i = 0
    url = "https://tieba.baidu.com/f/like/mylike"
    contain1 = BeautifulSoup(requests.get(url=url, cookies=myCookies, headers=myHeader).text, "html.parser")
    pageNum = len(contain1.find("div", attrs={"class": "pagination"}).findAll("a"))
    a = 1
    while a < pageNum:
        urlLike = f"https://tieba.baidu.com/f/like/mylike?&pn={a}"
        contain = BeautifulSoup(requests.get(url=urlLike, cookies=myCookies, headers=myHeader).text, "html.parser")
        first = contain.find_all("tr")
        for result in first[1:]:
            second = result.find_next("td")
            name = second.find_next("a")['title']
            singUp(name)
            time.sleep(5)
            i += 1
        a += 1
    print(f"签到完毕!总共签到完成{i}个贴吧")

def getTbs(name):
    urls = f"https://tieba.baidu.com/f?kw={name}"
    contain = BeautifulSoup(requests.get(urls, headers=myHeader, cookies=myCookies).text, "html.parser")
    first = contain.find_all("script")
    try:
        second = re.findall('\'tbs\': "(.*?)" ', str(first[1]))[0]
        return second
    finally:
        return re.findall('\'tbs\': "(.*?)" ', str(first[1]))

def singUp(tb):
    myDate = {
        "ie": "utf-8",
        "kw": tb,
        "tbs": getTbs(tb)
    }
    resp = requests.post(url, data=myDate, headers=myHeader, cookies=myCookies)
    result = re.findall('"error":"(.*?)"', str(resp.text))[0]
    if result.encode().decode("unicode_escape") == "":
        print(f"在{tb}签到成功了!!")
    else:
        print(f"在{tb}签到失败了,返回信息: " + result.encode().decode("unicode_escape"))

getTblikes()

(有部分坛友反馈看不懂,不知道怎么用,有很多人这样吗?到时我看下上传个详细教程或者传一份编译后的exe版本)

免费评分

参与人数 13吾爱币 +16 热心值 +12 收起 理由
XiaoTao668 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
xunwokong + 1 + 1 热心回复!
涛之雨 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
Xnjikol + 1 + 1 我很赞同!
beifengbeifeng + 1 谢谢@Thanks!
lztym + 1 + 1 热心回复!
sunlit + 1 用心讨论,共获提升!
zhangzsf + 1 + 1 谢谢@Thanks!
李佑辰 + 1 谢谢@Thanks!
Yolle + 1 + 1 用心讨论,共获提升!
笙若 + 1 + 1 谢谢@Thanks!
ddddhm + 1 + 1 我很赞同!
qinfc317 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

来自 73#
bulia 发表于 2022-8-9 13:44
本帖最后由 涛之雨 于 2022-8-9 19:42 编辑

牛,看着没执行通 我就给完善了一下
[Python] 纯文本查看 复制代码
import requests
from bs4 import BeautifulSoup
import re
import time

myHeader = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36",
}
myCookies = {
    "Cookie": 'xxxxx'

}
url = "https://tieba.baidu.com/sign/add"

def getTblikes():
    i = 0
    url = "https://tieba.baidu.com/f/like/mylike"
    contain1 = BeautifulSoup(requests.get(url=url, cookies=myCookies, headers=myHeader).text, "html.parser")

    if contain1.find("div", attrs={"class": "pagination"}):
        pageNum = len(contain1.find("div", attrs={"class": "pagination"}).findAll("a"))
    else:
        pageNum = 2
    a = 1
    while a < pageNum:
        urlLike = f"https://tieba.baidu.com/f/like/mylike?&pn={a}"
        contain = BeautifulSoup(requests.get(url=urlLike, cookies=myCookies, headers=myHeader).text, "html.parser")
        first = contain.find_all("tr")
        for result in first[1:]:
            second = result.find_next("td")
            name = second.find_next("a")['title']
            singUp(name)
            time.sleep(5)
            i += 1
        a += 1
    print(f"签到完毕!总共签到完成{i}个贴吧")

def getTbs(name):
    urls = f"https://tieba.baidu.com/f?kw={name}"
    contain = BeautifulSoup(requests.get(urls, headers=myHeader, cookies=myCookies).text, "html.parser")
    first = contain.find_all("script")
    try:
        second = re.findall('\'tbs\': "(.*?)" ', str(first[1]))[0]
        return second
    finally:
        return re.findall('\'tbs\': "(.*?)" ', str(first[1]))

def singUp(tb):
    myDate = {
        "ie": "utf-8",
        "kw": tb,
        "tbs": getTbs(tb)
    }
    resp = requests.post(url, data=myDate, headers=myHeader, cookies=myCookies)
    result = re.findall('"error":"(.*?)"', str(resp.text))[0]
    if result.encode().decode("unicode_escape") == "":
        print(f"在{tb}签到成功了!!")
    else:
        print(f"在{tb}签到失败了,返回信息: " + result.encode().decode("unicode_escape"))

getTblikes()

点评

大兄嘚,你cookie都敢乱放啊。。。我给你编辑掉了  详情 回复 发表于 2022-8-9 19:43
推荐
涛之雨 发表于 2022-8-9 19:43
bulia 发表于 2022-8-9 13:44
牛,看着没执行通 我就给完善了一下
[mw_shl_code=python,true]import requests
from bs4 import Beautif ...

大兄嘚,你cookie都敢乱放啊。。。我给你编辑掉了
沙发
sundong123 发表于 2022-8-4 19:13
3#
dblkings 发表于 2022-8-4 19:46

百度系统挖坟用我12年的回帖,给我封永久。。。。
4#
ycx151771 发表于 2022-8-4 21:02
这个优秀了
5#
lxg102024 发表于 2022-8-4 21:05
签到功能很好
6#
AKevin 发表于 2022-8-4 21:15
不错不错,来学习一下
7#
yanggo 发表于 2022-8-4 21:55
谢谢分享!虽然论坛里有个贴吧云签到来的
8#
zxxwuai 发表于 2022-8-4 22:25
学习一下啊,谢谢
9#
liziming 发表于 2022-8-4 23:15
感谢分享
10#
Beixiaomo32 发表于 2022-8-4 23:30
好久没用贴吧了,之前沉迷于签到,签了很多个吧。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2022-8-16 12:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表