**實現如下:
#進入抖音排行榜的歌曲列表之後,我們先來觀察下此刻的ui樹結構:-*- encoding=utf8 -*-
__author__ = "
airtestproject
"from airtest.core.api import *auto_setup(
__file__,devices=["
android:"])
"com.netease.cloudmusic")
"com.netease.cloudmusic")
sleep(1.0)
from poco.drivers.android.uiautomation import
androiduiautomationpoco
poco = androiduiautomationpoco(use_airtest_input=true, screenshot_each_action=false)
#同意服務條款
poco("
com.netease.cloudmusic:id/agree
").click()
wait(template(r
"tpl1595916981414.png
", record_pos=(0.004, -0.452), resolution=(900, 1600)))
sleep(2.0)
#勾選使用者協議並點選立即體驗
poco("
com.netease.cloudmusic:id/agreecheckbox
").click()
poco(
"com.netease.cloudmusic:id/trial
").click()
sleep(2.0)
poco("搜尋
"sleep(1.0)
#poco("搜尋"
).click()
sleep(1.0)
poco(
"com.netease.cloudmusic:id/search_src_text
").click()
poco(
"com.netease.cloudmusic:id/search_src_text
").set_text("抖音"
)sleep(1.0)
poco.click([0.14,0.13])
assert_exists(template(r
"tpl1595821867472.png
", record_pos=(-0.283, -0.489), resolution=(900, 1600)), "
找到抖音排行榜")
#點選進入抖音排行榜
poco("
com.netease.cloudmusic:id/title
").click()
獲取完當前頁面載入的所有歌曲名稱之後,我們可以通過向上滑動列表,來不斷載入新的歌曲控制項。
但這時候,我們還需要解決2個問題:
我們可以事先定義好1個空的陣列,將獲取到的歌曲名稱放到陣列裡面,在放入歌曲名稱之前,做1個判斷,放入陣列的歌名不能與陣列已經存在的歌名相同,這樣子就能夠保證我們每次放入的都是新的歌名;
最終實現的效果如下:
定義1個空陣列用於存放排行榜的歌名
titles =
#定義陣列目前的長度和最終的長度
current_count, last_count =len(titles), len(titles)
while
true:
last_count =len(titles)
for title in poco("
com.netease.cloudmusic:id/musicinfolist
").child("
com.netease.cloudmusic:id/musiclistitemcontainer"):
a = title.offspring("
com.netease.cloudmusic:id/songname")
ifnot
a.exists():
continue
name =a.get_text()
ifnot name in
titles:
(name)
current_count =len(titles)
poco.swipe([0.5,0.7],[0.5,0.1],duration=2)
sleep(1.0)
#當倆者數值相等,即current_count不再增加時,表明爬取完畢
if current_count ==last_count:
print("
總共爬取
"+str(last_count)+"
首歌曲的名稱")
break
上述就是利用airtest實現模擬爬取的全部過程。當然,我們不僅可以把爬取的歌曲名稱列印在log檢視窗中,還可以將它儲存在指定的文件中,這個大家可以嘗試著自己實現一下。
airtest官網:
airtest教程官網:
搭建企業私有雲服務:
Python爬蟲實戰案例 機 App 抓包爬
class douyuspideritem scrapy.item name scrapy.field 儲存照 的名字 imagesurls scrapy.field 照 的 url 路徑 imagespath scrapy.field 照 儲存在本地的路徑import scrapy 返回從 jso...
App防止被抓包
1.使用https,可以初步防止一些只抓http包的軟體。2.如果網路框架使用的是okhttp,可以在builder中設定proxy proxy.no proxy 屬性,禁止使用 這樣一般使用中間人的 就使用不了,客戶端是直接訪問伺服器。3.判斷是否使用了 final boolean flag bu...
Fiddler抓包 只抓APP的請求
from 把來自pc的請求過濾掉,因為請求太多,這樣會找不到重要的資訊了。環境準備 1.電腦上已裝fiddler 2.手機和電腦在同一區域網 一 設定 1.fiddler tools fiddler options connections 勾選allow remote computers to co...