1. 程式人生 > >抖音爬蟲(基於自動化測試)

抖音爬蟲(基於自動化測試)

這是一篇比較粗糙的部落格,大都是一些想法和整體解決方案的東西,適合於有基礎的人看。

由於抖音這類的短視訊網站被整改,抖音關閉了分享視訊的網頁介面。現在無法從網頁端爬取短視訊。

解決方法:手機模擬器 + 中間抓包工具 + 自動化控制指令碼 + 下載指令碼

相關依賴:

手機模擬器: Genymotion(這是火箭速度的模擬器,AndroidStd自帶的模擬器不能安裝相關的apk)

抓包工具 :mitmproxy (Windows下使用mitmdump 命令)

自動化控制伺服器: Appium Desktop

1. 環境的安裝和配置

在整體的工作中,由於本次相關依賴較多,所以環境的安裝和配置,是非常重要的一環。

這裡我列一下相關參考的博文,大家可以根據指導來配置相關的環境

    抓包工具的配置:直接用Python3的pip install mitmproxy即可 相關手機配置去搜一下,設定手機WIFI代理即可(和電腦在同一個區域網內)。

至此,相關的環境和依賴都已經安裝和配置完成。

2. Genymotion伺服器上,app安裝

這個模擬器之所以優秀,就是因為他有一個Translation的壓縮包,支援ARM ArchitectureCPU編譯的apk在X86 的編譯架構環境下安裝。所以Geny可以安裝類似抖音或者微信這樣的app

建立一個api22的模擬器(我試了一個api26的,抖音起不來,不知道為什麼)

把Trans.zip拖進去模擬器。完成之後重啟模擬器

把抖音的apk拖進去,安裝完成後會自動啟動(我這裡用的抖音版本是2.0.0,如果你想用其他版本,程式碼需要更改find_element_by_id()裡面的Id。因為不同版本中,相同控制元件的Id編號不一樣。)

3. 自動化控制指令碼的開發

這裡用python指令碼,通過appium伺服器來操作genymotion模擬器。

這裡都是很簡單的命令,不懂的可以百度一下。

從推薦頁向下挨個滑動,每到一個新視訊,就點選進入使用者主頁,之後再點選兩次返回鍵(為了避免點進廣告),回到推薦頁,繼續上面的操作。理論情況下,可以無限爬取使用者的視訊內容。

4. 下載指令碼的開發

這裡下載指令碼很簡單,就是通過mitmproxy 的flow獲得url,然後在所有的url中做過濾,拿到想要的url。

5. 總結

在控制指令碼執行的過程中,mitmdump已經抓到了相關的URL,下載指令碼要做的就是根據相關URL來正則出使用者ID,根據獲取視訊列表請求的URL來發包,並且解析獲得視訊的URL。之後將ID和對應的URL存入Redis中的HASH(注意這裡存進去是STR),之後用一個指令碼來取出來下載。

注意這些視訊的URL都是有時效性的,所以需要邊刷URL,邊用指令碼下載。

在工作中,本來是需要把以上在windows下開發的一套流程放在伺服器上面實現一遍,因為最終要把任務放在伺服器上來做,不過由於這個模擬器需要VT依賴,在伺服器端無法完成。

所以退一步的方法就是,買一臺很厲害的工作站,在公司本地掛10多個模擬器,同時跑吧。

一臺模擬器一天如果順利的話,會爬到1000個使用者左右(每個使用者20個視訊)。產生50G資料。

原始碼和指令碼

請尊重原創!!!!!!!!

如果你要轉載,請以醒目的標識著名源地址。

你也不想自己用心做的東西被剽竊。

相關推薦

爬蟲基於自動化測試

這是一篇比較粗糙的部落格,大都是一些想法和整體解決方案的東西,適合於有基礎的人看。 由於抖音這類的短視訊網站被整改,抖音關閉了分享視訊的網頁介面。現在無法從網頁端爬取短視訊。 解決方法:手機模擬器 + 中間抓包工具 + 自動化控制指令碼 + 下載指令碼 相關依賴

基於python的網際網路軟體測試開發自動化測試-全集合

6   接受捐贈 以上內容都是花費了作者大量的精力進行探索和總結,最後還整理成有體系的學習資料,耗費了比較長的時間和比較大的精力。 今天作者決定將這些資料進行分享主要是:希望讓知識傳播得更多更廣,幫助更多的人,這樣才對得起知識,才尊重了知識。 將知識雪藏起來,讓知識不見天日,讓知識的作用隨著時間的推

爬蟲--視訊列表 signatrue 破解

不多說,直接上原始碼 + 演示 原始碼 原文 dolphin 方法一: 版本:python3 單個測試檔案,注意替換html檔案的路徑和相應版本的chrome driver

APP自動化(1)——搭建Appium自動化測試平臺環境基於python&android

由於是基於python與android。所以前面的步驟1-3是搭建Android和python的環境的。從步驟4才是搭建Appium環境 1、安裝並配置JDK,JRE 2) 在環境變數中新增

移動端爬蟲--專案實踐loach--爬去資料

文集 移動端爬蟲 原始碼 loach loach是一個移動端爬蟲,針對現下很火的短視訊app—抖音 支援多個android裝置並行自動化 支援任意android裝

自動化測試工具基於WordCount作業

本自動化測試的程式用於自動化測試[WordCount作業](https://edu.cnblogs.com/campus/fzu/FZUSESPR21/homework/11672),採用Java開發(基於jdk1.8+),基於Maven來管理專案。 ## 支援的語言和開發進度 | 語言 | 進度

QTQuick Testing自動化測試軟件初體驗

nbsp 存在 個人信息 列操作 進行 用戶登錄 分享圖片 運行腳本 流程 目前自動化測試盛行,大公司都在向自動化這一方面發展,所以我在業余時間找到QT自動化軟件,通過網站的教程自學到一點點自動化知識,下文是我的實戰。 QT能夠對一個WINDOWS、

iOS模擬器命令自動化測試

1. 列出安裝的可用的模擬器: xcrun instruments -s 【如:iPhone 5s (9.0) [00AB3BB6-C5DC-45C7-804F-6B88F57C2AFF] (Simulator)】 1. 檢視已安裝的模擬器: ios-sim showdevicetypes

iOS真機命令自動化測試

獲取裝置的的UDID idevice_id --list # 顯示當前所連線裝置的 udid instruments -s devices # 列出所有裝置,包括真機、模擬器、mac ideviceinfo 可以在返回的資料中找到 udid idevice_id -l 蘋果手機

在centos7上部署selenium基於chrome驅動爬蟲專案

 相信大家在寫爬蟲的時候,經常會遇到爬取的網站是動態渲染的,而且各自反爬加密引數,難以破解,所以不得已採用使用了python+selenium進行模擬人為操作爬取。免去了一些繁瑣步驟。但是我們大多數都是在windows或者Mac下進行開發和測試。開發完了之後。最終要部署到伺服器上去。那

Adb命令常用的一些命令自動化測試

一.殺monkey程序:1.找到monkey程序的pid:adb shell top -n 1  |findstr monkey  2.根據程序號殺monkey: adb shell kill  16415(程序號)二.獲取應用版本號adb shell dumpsys pac

Bruce小鬼專注效能測試、介面測試、java測試開發、自動化測試

python從入門到跑路 在python的世界中,有一句座右銘,人生苦短,我用python。在大家不斷的提及python,讓我覺得只會java已經不能夠遊刃有餘了,再此記錄下我學習python路程的心得。

視訊編解碼問題:javaCV如何快速進行音訊預處理和解複用編解碼基於javaCV-FFMPEG

前言: 前面我用了很多章實現了javaCV的基本操作,包括:音視訊捕捉(攝像頭視訊捕捉和話筒音訊捕捉),推流(本地音視訊或者攝像頭話筒混合推流到伺服器),轉流(rtsp->rtmp),收流(錄製)。 序: 我們知道javaCV中編碼需要先取到一幀取樣的音訊(即取樣

一隻簡單的網路爬蟲基於linux C/C++————淺談併發IO複用模型

Linux常用的併發模型 Linux 下設計併發網路程式,有典型的 Apache 模型( Process Per Connection ,簡稱 PPC ), TPC ( Thread Per Connection )模型,以及 select 模型, poll

分享微信鏈接自定義標題前端基於asp測試

tex als des line () ppm https head weixin <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type"

Vue自動化路由基於Vue-Router開篇

# vue自動化路由 好久不見~ 若羽又開篇Vue的內容了。 年初的時候釋出了第一版的`ea-router`自動化路由庫,歡迎大家安裝使用。[[Github地址]](https://github.com/WhileKing/ea-router) [[npm地址]](https://www.npmjs.com

作為一個測試人員的素質如何做好測試

腳本 lsp 規劃 接口測試 自己的 做什麽 cells 工作任務 前端 1.產品評審:   ①發表自己的意見;②評審的時候不能只停留在ui,盡量讓產品說清楚(交互,排序方式,刷新規則,分頁處理) 2.測試計劃,測試方案:   測試計劃:描述了要進行的測試活動的範圍、方法、

爬蟲scrapy第一篇

pat span shell text -i col trac xpath http ----------------------------------------------------------------------------------------------

陰陽師輔助基於按鍵精靈

的人 rdp 識別 left 功能 可能 分享 按鍵 截圖 其實這篇文章好早就像寫了,可是我這種拖延癥晚期的人啊,做什麽事都是拖拖拉拉的,最近玩火號被封了,才想起這件事…好了好了,廢話不說了。 首先是按鍵精靈,經常玩遊戲的人可能會認識,一個神奇的腳本軟件,可以說是完全基於圖

ArrayList的實現細節基於JDK1.8

cati port 內存 ont cit blank pla 失敗 關於 ArrayList是我們經常用到的一個類,下面總結一下它內部的實現細節和使用時要註意的地方。 基本概念 ArrayList在數據結構的層面上講,是一個用數組實現的list,從應用層面上講,就是一個容量