• 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

  • 相关阅读:
    NSlog 对于新手的一点技巧和用法.
    iOS7+ 扫描二维码和条形码实现 耗时操作
    关于iOS block循环引用的一点理解
    Xcode 快捷开发的几个插件
    在Mac下面删除所有的.svn文件
    一个textView 预留空白的问题
    Supporting Multiple iOS Versions and Devices
    Building an iOS Universal Static Library
    iOS Library With Resources
    iOS开发长文--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总
  • 原文地址:https://www.cnblogs.com/loren880898/p/11468901.html
Copyright © 2020-2023  润新知