专栏首页Python爬虫与数据分析抖音app的抓取------准备工作

抖音app的抓取------准备工作

好久没更新爬虫了,今天来抓取抖音app.

抓取app的话,首先需要一个手机或者在自己的电脑上安装模拟器,模拟器你需要知道各个模拟器的默认端口

这个后面会说哪里会用到。

第二步,抓包

抓包的工具很多,找到自己觉得方便的就行,我这里推荐大家的是mitmproxy

mitmproxy是一个支持HTTP和HTTPS的抓包程序,有类似Fiddler、Charles的功能,只不过它是一个控制台的形式操作。

mitmproxy还有两个关联组件。一个是mitmdump,它是mitmproxy的命令行接口,利用它我们可以对接Python脚本,用Python实现监听后的处理。另一个是mitmweb,它是一个Web程序,通过它我们可以清楚观察mitmproxy捕获的请求。

手机和PC在同一个局域网内,设置代理为mitmproxy的代理地址,这样手机在访问互联网的时候流量数据包就会流经mitmproxy,mitmproxy再去转发这些数据包到真实的服务器,服务器返回数据包时再由mitmproxy转发回手机,这样mitmproxy就相当于起了中间人的作用,抓取到所有Request和Response,另外这个过程还可以对接mitmdump,抓取到的Request和Response的具体内容都可以直接用Python来处理,比如得到Response之后我们可以直接进行解析,然后存入数据库,这样就完成了数据的解析和存储过程。

安装mitmproxy(建议换到国内源安装,方法自行百度)

pip3 install mitmproxy

这个最简单,其他方式参考:https://cuiqingcai.com/5391.html

对于mitmproxy来说,如果想要截获HTTPS请求,就需要设置证书。mitmproxy在安装后会提供一套CA证书,只要客户端信任了mitmproxy提供的证书,就可以通过mitmproxy获取HTTPS请求的具体内容,否则mitmproxy是无法解析HTTPS请求的。

首先,运行以下命令产生CA证书,并启动mitmdump:进入到目录cmd中直接运行,

mitmdump

然后在用户目录下找到CA证书

证书一共5个,表1-1简要说明了这5个证书。

表1-1 5个证书及其说明

mitmproxy-ca.pem

PEM格式的证书私钥

mitmproxy-ca-cert.pem

PEM格式证书,适用于大多数非Windows平台

mitmproxy-ca-cert.p12

PKCS12格式的证书,适用于Windows平台

mitmproxy-ca-cert.cer

与mitmproxy-ca-cert.pem相同,只是改变了后缀,适用于部分Android平台

mitmproxy-dhparam.pem

PEM格式的秘钥文件,用于增强SSL安全性

Windows

双击mitmproxy-ca.p12,就会出现导入证书的引导页,如图1-61所示。

直接点击“下一步”按钮即可,会出现密码设置提示,

这里不需要设置密码,直接点击“下一步”按钮即可。

接下来需要选择证书的存储区域,这里点击第二个选项“将所有的证书都放入下列存储”,

然后点击“浏览”按钮,选择证书存储位置为“受信任的根证书颁发机构”,

接着点击“确定”按钮,然后点击“下一步”按钮。

最后,如果有安全警告弹出,直接点击“是”按钮即可。

这样就在Windows下配置完CA证书了。

图我都没有贴,感觉没必要,基本都是下一步,傻瓜式

Android

将刚才,我图中圈出来的发到手机上安装,mitmproxy-ca-cert.cer。如果这个在手机上安装失败,则去将mitmproxy-ca-cert.pem发到手机上安装。

可能会有安全警告,直接忽略就行,完成。

配置代理IP。连接同一局域网,在WiFi的设置中添加代理IP和端口,代理IP是电脑的IP,端口是抓包监控的端口。

cmd运行着段代码   mitmdump -s decode_douyin_fans.py -p 8889  说明:mitmdump -s py文件 -p 模拟器代理端口

也可以直接运行mitmdump, 默认端口是8080;

py文件,我贴点,可以参考这个:

import json
# 这个地方必须这么写 函数名:response
def response(flow):
    # 通过抓包软包软件获取请求的接口
    if 'aweme/v1/user/follower/list' in flow.request.url:
        # 数据的解析
        for user in json.loads(flow.response.text)['followers']:
            douyin_info = {}
            douyin_info['share_id'] = user['uid']
            douyin_info['douyin_id'] = user['short_id']
            douyin_info['nickname'] = user['nickname']
            print('粉丝列表:', douyin_info, '---------------------------')

运行时的截图,没有。

大家有什么问题,可以留言, 我看到了都会回复。

然后就是以后我们只会写关于Python的内容,爬虫、数据分析、机器学习,后面可能会有深度学习。


回复‘机器学习’,获取最新资源。


关于Python的资源及爬虫的资源我都会更新,欢迎关注!


后面我会给打赏的同学分享我每次爬到的数据,只能这么感谢大家的支持,谢谢!

本文分享自微信公众号 - Python爬虫scrapy(python_scrapy),作者:AndrewAndrea

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-03-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 关于美团登录

    已经好久没发文章了,最近因为换工作的事,有点忙就没写过文章。今天给大家说说美团的登录吧。

    andrew_a
  • *oulapp的双向证书破解

    这个最简单的方法就是使用JustTrustMe,当然这个要依赖Xposed,手机没有root的话,你也可以使用太极、 VirtualXposed 等一些免roo...

    andrew_a
  • 调用Python的wxpy库,将获取到的信息发送给微信好友

    在Python中可以使用wxpy模块中的bot创建一个机器人对象,调用Bot方法会直接返回一个二维码,扫描该二维码登录,获取微信好友,选择一个好友,将该消息自动...

    andrew_a
  • Python爬虫入门教程 47-100 mitmproxy安装与安卓模拟器的配合使用-手机APP爬虫部分

    介绍一款爬虫辅助工具mitmproxy ,mitmproxy 就是用于MITM的proxy,MITM中间人攻击。说白了就是服务器和客户机中间通讯多增加了一层。跟...

    梦想橡皮擦
  • 【DB笔试面试484】如何批量删除JOB?

    可以采用SQL来生成删除JOB的语句,首先执行以下语句,可以根据情况对结果进行过滤:

    小麦苗DBA宝典
  • 【TPAMI重磅综述】 SIFT与CNN的碰撞:万字长文回顾图像检索任务十年探索历程(下篇)

    本文是《SIFT Meets CNN: A Decade Survey of Instance Retrieval》的下篇。在上 篇中概述了图像检索任务极其发...

    机器学习算法工程师
  • 大数据“读心术”:你的开车姿势决定了你的买车品质

    随着云计算、大数据等各类新技术的兴起普及,汽车行业正迎来一场数据变革。12月7日的线上数据侠实验室中,DT君邀请到了车主服务平台公司“微车”的联合创始人、CTO...

    DT数据侠
  • loj#6033. 「雅礼集训 2017 Day2」棋盘游戏(二分图博弈)

    对于某个点,若它一定在最大匹配上,那么Bob必胜。因为Bob可以一直沿着匹配边都,Alice只能走非匹配边。到最后一定是Alice不能移动。

    attack
  • Android 解析RecyclerView(3)——以更简单的方法实现带顶部View和底部View的RecyclerView

    叶应是叶
  • Android 解析RecyclerView(2)——带顶部View和底部View的RecyclerView

    叶应是叶

扫码关注云+社区

领取腾讯云代金券