python利用Appium實現(xiàn)自動控制移動設(shè)備并提取數(shù)據(jù)功能_第1頁
python利用Appium實現(xiàn)自動控制移動設(shè)備并提取數(shù)據(jù)功能_第2頁
python利用Appium實現(xiàn)自動控制移動設(shè)備并提取數(shù)據(jù)功能_第3頁
python利用Appium實現(xiàn)自動控制移動設(shè)備并提取數(shù)據(jù)功能_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第python利用Appium實現(xiàn)自動控制移動設(shè)備并提取數(shù)據(jù)功能至此,可以參考爬蟲5.0課程項目庫,使用fiddler等抓包工具,利用appium+mitmproxy+wget等python模塊自動獲取抖音視頻文件

6.關(guān)于模擬式移動端爬蟲的參考閱讀

/butomo1989/docker-android

/weixin_42620645/article/details/83828863

/weixin_39211232/article/details/83410130#Android_16

/p/bf1ca3d4ac76

/appium/

小結(jié)

了解appium-python-client模塊定位元素以及提取其文本內(nèi)容的方法了解appium-python-client模塊控制滑動動作的方法7.完整代碼

douyin.py

importtime

fromappiumimportwebdriver

classDouyinAction():

"""自動滑動,并獲取抖音短視頻發(fā)布者的id"""

def__init__(self,nums:int=None):

#初始化配置,設(shè)置DesiredCapabilities參數(shù)

self.desired_caps={

'platformName':'Android',

'deviceName':'SM-G955F',

'appPackage':'com.ss.android.ugc.aweme',

'appActivity':'.main.MainActivity'

#指定AppiumServer

self.server='http://localhost:4723/wd/hub'

#新建一個driver

self.driver=webdriver.Remote(self.server,self.desired_caps)

#獲取模擬器/手機(jī)的分辨率(px)

width=self.driver.get_window_size()['width']

height=self.driver.get_window_size()['height']

print(width,height)

#設(shè)置滑動初始坐標(biāo)和滑動距離

self.start_x=width//2#屏幕寬度中心點(diǎn)

self.start_y=height//3*2#屏幕高度從上開始到下三分之二處

self.distance=height//2#滑動距離:屏幕高度一半的距離

#設(shè)置滑動次數(shù)

self.nums=nums

defcomments(self):

#app開啟之后點(diǎn)擊一次屏幕,確保頁面的展示

time.sleep(2)

self.driver.tap([(500,1200)],500)

defscroll(self):

print('滑動ing...')

self.driver.swipe(self.start_x,self.start_y,

self.start_x,self.start_y-self.distance)

time.sleep(3)

self.driver.find_element_by_xpath('/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.HorizontalScrollView/android.widget.LinearLayout/android.widget.TabHost/android.widget.FrameLayout/android.widget.FrameLayout[2]/android.widget.LinearLayout/android.widget.FrameLayout[1]').click()

time.sleep(3)

#無限滑動

i=0

whileTrue:

#模擬滑動

print('滑動ing...')

self.driver.swipe(self.start_x,self.start_y,

self.start_x,self.start_y-self.distance)

time.sleep(3)

self.get_infos()#獲取視頻發(fā)布者的名字

#設(shè)置延時等待

time.sleep(4)

#判斷是否退出

ifself.numsisnotNoneandself.nums==i:

break

i+=1

defget_infos(self):

#獲取視頻的各種信息:使用appiumdesktop定位元素

print(self.driver.find_element_by_id('ap').text)#發(fā)布者名字

print(self.driver.find_element_by_id('xm').text)#點(diǎn)贊數(shù)

print(self.driver.find_element_by_id('xn').text)#留言數(shù)

print(self.driver.find_element_by_id('oz').text)#視頻名字,可能不存在,報錯

##點(diǎn)擊距離右邊60距離底邊170720-60,1280-170

#self.driver.tap([(660,1110)])

##s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論