python爬虫抖音 个人资料 仅供学习参考 切勿用于商业

本文仅供学习参考 切勿用于商业

本次爬取使用fiddler+模拟器(下载抖音APP)+pycharm

1. 下载最新版本的fiddler(自行百度下载),以及相关配置

image

1.1.依次点击,菜单栏-Tools-Options-HTTPS,如图1红框打钩,HTTPS旁边Connections配置,如图2红框打钩

imageimage

1.2.再次点击HTTPS栏,点击Actions选择第二个…to Desktop这个选项,发送证书到桌面(方便找到,模拟器中需要安装)

image

2.下载安装模拟器,我用的是夜神模拟器

官网:https://www.yeshen.com/

自行修改页面或内存等。。。。

image

2.1.回到电脑桌面, 找到刚才保存的证书,拖动到模拟器,看一下下图红框中的路径。

image

2.2. 返回模拟器桌面,打开设置,下拉找到进入-安全-选择从SD卡安装-如下图所示,找到证书进行安装,提示的随便输入。

imageimageimageimageimage

2.3.返回到模拟器设置, 找到WiFi,进去,左键长按,修改网络,如图修改,本机ip查询,cmd输入ipconfig,IPv4后边的就是本机IP

imageimageimageimage

3. 模拟器应用市场中下载抖音App,到此配置已完成,重启模拟器,之后测试fiddler是否能抓到请求包。

4.测试能抓到请求。然后分析请求。

image

5,本文爬取的是 '抖音昵称', '抖音ID', '个人简介' 因此查看到 抓包返回的是图2的数据

imageimage

6.得到的数据不可能一个一个的复制保存到本地,因此可使用fiddler自行编写脚本保存数据, 走起,自己去添加一个,如图3,添加的脚本 自动保存相应数据到本地json文件

imageimageimage

7.以下是fiddler脚本,根据需要自行修改

if (oSession.uriContains("https://aweme-eagle-hl.snssdk.com/aweme/v1/user/")){
        //上边的网址是你需要保存数据的网址开头的部分,网站修改的话需要及时修改url
        var strBody=oSession.GetResponseBodyAsString();
        var sps = oSession.PathAndQuery.slice(-64,-54);
        //FiddlerObject.alert(sps)
        var filename = "E:/此处是本地路径" + "/" + sps + ".json";  
        var curDate = new Date();   
        var sw : System.IO.StreamWriter;  
        if (System.IO.File.Exists(filename)){  
            sw = System.IO.File.AppendText(filename);  
            sw.Write(strBody);  
        }  
        else{  
            sw = System.IO.File.CreateText(filename);  
            sw.Write(strBody);  
        }  
            
        sw.Close();  
        sw.Dispose(); 
        }

8.在模拟器抖音中, 不断的去往下翻,往右翻, 查看用户页,fiddler编写的脚本就自动保存了你需要的数据。如图

image

9. 那么问题来了 当想大量的爬取数据时, 不可能人工翻页,所以这时候用到了模拟器自带的操作助手功能。

9.1,自己动手录取一段,你想让模拟器不断循环的操作,设置循环次数,往下翻,记得保存。

imageimageimage

9.2. 点击播放按钮,模拟器就会自动循环你录制的操作,一直往下翻页,fiddler,会不断有新的相应被抓到,本地的json数据越来越多。

=======================================================

基本操作搞完了,那么拿到的json文件如何解析呢,这时候敲代码去吧。

=======================================================

10。说一下思路,具体代码不做展示。

10.1,从本地去到json文件,放到一个列表中,循环列表中的json

10.2  json.load()读取json文件content

10.3  取json中你所需的资料。

10.4 存储,我存的excel文件,出现了一些问题,这里我说一下。

# 存储时特殊字符会报错,此处用codecs存储,存储的csv会出现编码乱的问题,解决办法,右键用记事本打开保存的csv文件,另存为一下,编码格式选utf-8.
        with codecs.open("./douyin/douyin.csv", "a+", encoding='utf-8') as f:
            writer = csv.writer(f, dialect="excel")
            writer.writerow(l)

10.5  爬到的数据,会有从重复的,去重很简单,这里就不说了。

展示一下我爬到的数据

image

猜你喜欢

转载自www.cnblogs.com/loren880898/p/11468901.html