python爬虫-某度贴吧app的学习过程

前言:一直玩贴吧,有一天突发奇想,自己手动发帖子多麻烦啊,有没有可能通过技术去实现呢,说干就干,虽然咱是搞技术的呢。

第一步,去豌豆荚网站下载某吧app,手机和电脑连接一起,使用adb shell install apk安装好软件。

第二步,我们使用Charles抓包,结果如下:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6ay86LC3MDAx,size_20,color_FFFFFF,t_70,g_se,x_16

很明显这就是我们要找的发帖接口,干他。

第三步,有逆向经验的一眼就知道这有一个签名校验,没有经验也没关系,你是用Python request 或者postman构建请求,一个个参数去试试,你也能确定要破解的参数就是 sign。请求代码如下:

import requests

    cookies = {
        'ka': 'open',
    }

    headers = {
        'cuid': 'baidutiebaapp44905d58-58c2-49c9-add1-22714b4b9939',
        'client_logid': '1649748898345',
        'client_user_token': '1455498416',
        'Host': 'c.tieba.baidu.com',
        'cuid_galaxy2': '84861916E8C6BC80BC42F42B9C96827D|VOFELOESK',
        'User-Agent': 'bdtb for Android 11.0.0.0',
    }

    # data = {
    # 'BDUSS': '9-a2laNkNoMEpxdVRHNGo0cExISjlyZ3JGZnpBNU91QS1aajFneGxmN3F1WHhpRVFBQUFBJCQAAAAAAAAAAAEAAACwJMFWuNy43LXEzt672gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOosVWLqLFVicG',
    # '_client_id': 'wappc_1649749074157_912',
    # '_client_type': '2',
    # '_client_version': '11.0.0.0',
    # '_phone_imei': '000000000000000',
    # 'anonymous': '1',
    # 'authsid': 'null',
    # 'call_from': '2',
    # 'can_no_forum': '0',
    # 'content': '\u60F3\u627E\u4E00\u8D77\u5B66\u4E60\u4EA4\u6D41\u7684\u670B\u53CB',
    # 'cuid': 'baidutiebaapp44905d58-58c2-49c9-add1-22714b4b9939',
    # 'cuid_galaxy2': '84861916E8C6BC80BC42F42B9C96827D|VOFELOESK',
    # 'cuid_gid': '',
    # 'entrance_type': '1',
    # 'fid': '4152157',
    # 'from': '1014517l',
    # 'is_feedback': '0',
    # 'is_hide': '1',
    # 'is_link_thread': '0',
    # 'is_ntitle': '1',
    # 'is_repost_to_dynamic': '0',
    # 'kw': 'python3',
    # 'model': 'Pixel XL',
    # 'name_show': '\u6760\u6760\u7684\u65E0\u6094',
    # 'net_type': '1',
    # 'new_vcode': '1',
    # 'reply_uid': 'null',
    # 'sign': 'FCBF3523E756CAA5E4FF3D9B1F00F0DB',
    # 'stErrorNums': '1',
    # 'stMethod': '1',
    # 'stMode': '1',
    # 'stSize': '898',
    # 'stTime': '281',
    # 'stTimesNum': '1',
    # 'st_type': 'notitle',
    # 'stoken': '7730c997d4369bbd259bcc4fa04560a178bdaeaafe789455678a1ff333f77c14',
    # 'takephoto_num': '0',
    # 'tbs': '3d67514b096754011649749896',
    # 'timestamp': '1649750038491',
    # 'title': '',
    # 'vcode_tag': '12',
    # 'z_id': 'loqzvJ8IIqkJMyA2w_41IBZeDhmk7VPo5RbNR9AkX_oBZ8zVOXdjocZ_UqkSVx70DlbXQ174fmXToyNYpajtiJg'
    # }

    response = requests.post('http://c.tieba.baidu.com/c/c/thread/add', headers=headers, cookies=cookies, data=data)
    print(response.text)
    print('发帖后的状态:{}'.format(response.json()['msg']))

第四步,下面我们就是hook,找到加密的java 方法,不过看sign的值我们就知道很明显就是MD5加密啊,结果如下:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6ay86LC3MDAx,size_20,color_FFFFFF,t_70,g_se,x_16

既然算法也知道了,我们直接拼接就行了就可以把算法给完全还原出来了,结果如下:

bdtb

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

v(z_xiansheng88)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值